こんばんは。
データアナリストの鈴木です。

ワードプレスのテーマカスタマイズ中に起こった問題についての覚書です。

ワードプレスのテーマで管理画面をカスタマイズして設定項目を増やす依頼がありました。内容的には1時間程度で終わる予想でした。

とは言っても運用中のサイトなのでデータを壊したらいけないので、テスト用の環境を「Local」を使って構築しました。

まずここで一つ目のハマりポイント。
今回初めてLocalを使って環境構築しました。その際にデータを本番環境から移行したくて「All-in-one WP_migrate」を使ったのですが、インポートできるファイル上限が足りない。
そこで、「.htaccess」や「wp-config.php」を使って「upload_max_filesiz」と「post_max_size」の設定を変更しようと思ったけどこれが何故だか効かない。

結局、Localが生成するphp.ini.hbsを編集することで上限を増やすことができました。なんで効かなかったんだろう?あまり詳しく調べてません。

環境もできたのでプログラムを動かしてみたところ2つ目のハマりポイント。
なんと、問題なくフォームの更新はできたのですが、関係ない項目が関係ない値で更新されてしまいます。

何故かわからず、PHPもJavaScriptも修正箇所もそうじゃないところも全部見直して、それでもおかしなところはありません。

で、結論としてはキャッシュが影響してJavaScriptが正しく動作しておらず、HTMLに誤った値を設定していたために起こったバグ?でした。なので、キャッシュをクリアして、画面を何度か読み込み直したら正しく動作する様になりました。

更新がAJAXを使っていたのでその流れの中で起こった問題の様です。
まさか、HTMLに設定されているvalueの値と$(this).val()の値がずれるなんて思ってもみませんでした。

後から項目するとこんな落とし穴があるとはといった感じです。
そして、詳しい方いたらどうしたらこの様な問題が発生しないか教えてください。AJAX使わなければいいだけな気もしますが。

ただ、本番環境に反映させるかは依頼主と相談してから決めようかなと思っています。
データを壊してしまう可能性があるので。

こんな感じでワードプレスの有料テーマのカスタマイズも対応しているので、お気軽にご相談ください。

本日も最後まで読んでいただき、ありがとうございました。