WordPressを構築していたら、本番環境とテスト環境で違う値にしなきゃいけないことがあると思います。
例えばMW WP Formをfnctions.phpでカスタマイズする場合、フックにフォームIDを使う必要があるわけですが、テストと本番ではIDが違う場合が多いです。
そんなとき、テストから本番にアップする際は値を変えてアップする…なんてことをしていると、テストでは動かなくなるし、また違う日に違うカスタマイズを誰かがやらなきゃいけなくなったときに、その値を正しく変えてくれる保証はありません。いつの間にか動かなくなってるとか怖いですよね。そしてめんどくさい。そんなことを考えなきゃいけないのが何よりめんどくさい。
というわけで、いい感じに解決しましょう。
wp-config.phpに定数を定義する
テスト環境と本番環境でほぼ間違いなく違っていて、そしてそう触ることのないファイル。
それがwp-config.phpです。
wp-config.phpには各環境のデータベース情報が書かれていますので、つまりその環境ごとに固有の設定が書かれているわけです。wp-config.phpは、テストで修正したものを本番にアップする際に、そのまま一緒にアップするということはまずないと思います。
そんなwp-config.phpに定数を定義してあげれば万事解決。
例えばテストでは
1 2 |
/** MW WP Form ID Settings. */ define('MW_WP_FORM_ID', 2222); |
とし、本番では
1 2 |
/** MW WP Form ID Settings. */ define('MW_WP_FORM_ID', 3333); |
こうしとく。
ちなみにですが、この定数はwp-config.phpにもともと書かれている「/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */」より上に書いてください。つまり「define(‘WP_DEBUG’, false);」の真下ですね。じゃないとうまく動かないです。
そしてfunctions.phpのフック内では
1 |
add_filter( 'mwform_choices_mw-wp-form-'.MW_WP_FORM_ID, 'mwform_add_birthday_options', 10, 2 ); |
こうやって定数を呼び出してやれば、同じfunctions.phpをテスト/本番で使っていても、値はそれぞれ別になっていることになります。
これで安心!いろんな面倒なことから解放されます。環境が他にもあったとしても使えますしね。
以上、現場からでした。