Suite(カスタムフィールドスイーツ)これでカスタムフィールドを設定している場合、普通に編集画面から内容を登録するときはもちろん問題ないのですが、独自プログラムからカスタムフィールドの内容を新規登録する場合は注意が必要です。通常、カスタムフィールドにデータを登録する場合add_post_meta()update_post_meta()を使用します。これを使うと、確かにデータベースのwp_post_metaテーブルにデータが入るのですが、管理画面で該当記事の編集画面を開くと、データが入っていません。Suite用のテーブルがあるじゃないですか。要するに、これでキーとデータを紐づけているわけですね。Suiteが関数を用意してくれています。);という形で登録する必要があります。け先を選ぶと「お支払方法・お届け時間等の指定」画面で、「お届け時間の指定」が空っぽになる不具合についてEC-CUBEのコミュニティーでも質問させてもらったのですが、自己解決したので、ここにもメモ書き。商品A・B・C・D・Eをそれぞれ5個ずつカートに入れます。(合計25個)ログインして「お届け先の指定」画面で、「複数のお届け先に送る」を選択し、「お届け先の複数指定」画面を開きます。その画面で、商品ごとに(A・B・C・D・Eごとに)1個目は届け先a2個目は届け先b3個目は届け先c4個目は届け先d5個目は届け先eと指定し、「選択したお届け先に送る」ボタンを押します。↓こんな感じそうすると、なぜか次の画面で「お届け時間の指定」が空っぽになります。本来であれば、↓こんな風にお届け先ごとに時間帯を選択できるプルダウンが表示されます。原因はセッションを保存するカラムのデータ型でした。「dtb_order_temp」テーブルの「session」カラム「dtb_session」テーブルの「sess_data」カラムの2つに保存されるようなのですが、ここのカラムのデータ型は、「text」になっていました。「text」型だと、65,535バイトまでしか保存できませんが、上記の例のような届け先を設定をすると、65,535バイトを超えます。そのため、データが不十分な状態で保存されてしまい、届先データが消えてしまうという問題が起きていました。(実際確認すると中途半端な状態でデータが入っていました)ここのカラムのデータ型を「longtext」型に変えることによってこの現象は起こらなくなりました。「dtb_order_temp」テーブル「dtb_session」テーブルちなみにPostgreSQLでもこのカラムはtext型ですが、PostgreSQLの場合は、text型は「制限無し可変長文字列」みたいですね。PostgreSQLでは正常なのに、MySQLだと不具合が起きてしまっていたようです。MySQLを使っている方がいらっしゃいましたらご注意を。text型」でググったら、該当記事がいっぱい出てきた^^;修正方法についてはやっぱりこれで問題ないみたい。CMS関連json_encodeかと思ったらserializeだった話json_encodeされたデータとserializeされたデータはパッと見似ています。json_encodeでエンコードされたデータだと思って、json_decodeでデコードしようとしても、serializeでエンコードされたデータだったら、デコードされません(当然)serializeでエンコードされたデータは、unserializeでデコードしましょう。json_encode→json_decodeserialize→unserializeどっちか試してみて、だめなら片方でやればOKEC-CUBEやWordpressのデータは、serializeでエンコードされていることが多いです。改そもそもの原因についてはこちら【WordPress】スラッグ名が重複すると、公開中の投稿ページが404になる上記の対策方法を、こちらの記事「スラッグ名の重複対策」で書かせてもらいましたが、よくよく考えてみたら、こんなに複雑に考える必要はありませんでした。下書きだろうが、スラッグ名を確定させてしまえばよい!(というか、なぜそうなってないのか)プログラム修正版はこちらです。);7行目のwp_unique_post_slugは、wp_insert_post関数内で使用されてる、ユニークなスラッグ名を付けてくれる関数です。この関数の第3引数が、下書きの場合は、ユニークにしてくれません(第1引数のスラッグ名をそのまま返します)ということであれば、第3引数だけ「publish」にして、ユニークなスラッグ名を取得し、保存し直せばよい!ということで、作ってみたのですが、とりあえず大丈夫っぽい。※このプログラムについて責任はとれませんので、自己責任でお願いします。CMS関連EC-CUBE2系でドメイン変更するとログインできなくなるEC-CUBE2系を、テスト環境URLで構築して、本番環境URLに変更すると、サイト自体は表示されますが、ログインできなくなることがあります。URLを変更する際は、まず「/data/config/config.php」の下記の部分を変更します。'https://xxxxxxxx/');しかしこれだけ変更しても、管理画面にログインしようとするとシステムエラーとなってしまいました。config.phpのAUTH_MAGICを変更するとよいという情報を得たので変更してみたのですがうまくいかず。(最終的にはこれは変更しないほうがよかったです※)ということで、追加で下記を実行データベースの、dtb_sessionテーブルを空にする「data/Smarty/templates_c」の「admin」フォルダとサイトテンプレート用フォルダを空にする。ブラウザを立ち上げ直す(orブラウザを変えてみる)これで正常にログインできるようになりました!※AUTH_MAGICを変更していると、上記の3つを実行しても、「ログインIDとパスワードが間違っています」というエラーになりログインできなくなります。元に戻したら、ログインできるようになりました。CMS関連タイトル・内容のフック場所【WordPress】タイトル・内容のフック場所は、フロントエンド、管理画面で異なるので注意が必要です。1);単純に、the_titleやthe_contentにフックするだけでは、管理画面の方で反映してくれないので注意。投稿一覧では、表示だけならthe_titleのフックで行けますが、クイック編集の方にも反映させる場合は、the_postにフックし、$post->post_titleに処理を加える必要があります。固定ページにも抜粋をつける固定ページでも、子ページを一覧で表示するなどの使い方をする場合があります。);の必要があります。);これで、メディアに登録される際にサムネイルも生成されるようになりました。Type6でフォルダーを作成し、「変更を保存」ボタンをクリックしたところ、以下のエラーがアラートで帰ってきました。error・・・なにこれ?さらにカテゴリーのほうでも、同様に上記のエラーが出て保存できない。してもカテゴリーとフォルダーを追加しなくてならなかったため、phpMyAdminを入れて、そっちでデータベースに直接入れてみようかと思ったところ、なんかこっちでもエラーが出てSQLがちゃんと実行されない!?MTに引き続きphpMyAdminでも起こるって、ほんとなんだこれ!と思っていたら、後輩が「もしかして、WAFのせいかも」との一言。可能性はあると思い、サーバーのコンパネに入りWAFの設定を変更したところ、正常に動作するようになりました・・・あー、冷や汗かいた・・・WAFってセキュリティ高めてくれるのは良いんですが、どうも苦手です。ちなみに今回のサーバーはzenlogicでした。皆さんも注意しましょう。予約公開ができない場合【WordPress】WordPressで予約公開ができない場合、原因は色々とあります。このことは色んなサイトで紹介されています。自作PCテクニカルセンターでも、たまに公開に失敗するなど原因がよくわからない不具合も起こります。一定のアクセスがないと実行されないという仕様になっています。アクセスがないブログは予約投稿ができないといっても過言ではありません。自作PCテクニカルセンターという話まであり、正直Wordpressの予約公開はあまり信用できません。いうことで、解決方法として、こんな感じのプログラムをheader.phpの先頭に入れてみました。"publish");wp_update_post($save_post);}}}}※トップページアクセスの場合のみ反応するようにしています。post_statusがfutureになっている記事だけ取得し、予約日時が過ぎているものだけ、publishに更新するという簡単なプログラムちゃんと動いているし、負荷もそれほどかからないし問題なさそう。(Animeより[2019/11/23])WordPressのパーマリンクでindex.phpが勝手に挿入される。雑多エンジニアのひとりごとより[2019/11/11])WordPressのパーマリンクでindex.phpが勝手に挿入される。(94アクセス)プロフィール和歌山でウェブプログラマーをやってます。使える言語はHTML・PHP・Javascriptなど。Perlも扱えるようになるといいなぁ、と思う今日この頃。ついでに書くと、漫画・アニメが大好きなオタクです。最近はアクアリウムにはまり中。