前提・実現したいこと
Wordpress案件で、運用している本番環境と同じDBを使用するテスト環境を作る必要があり、
全く同じファイル構成で2つのサーバーにWordpress環境を作りました。
CPIのSmartReleaseでWordPressの開発と運用
を参考に、
テストサーバー内のwp-config.php
に
データベースのWPオプション変数siteurl, homeをオーバーライドするため
下記コードを追加しました。
define('WP_HOME','http://staging-example.com'); define('WP_SITEURL','http://staging-example.com');
しかし、http://staging-example.comにアクセスしても本番URLにリダイレクトされてしまいます。
http://staging-example.com/wp-admin
にはリダイレクトされることなくアクセスすることができ、問題なく動作します。
どうしたら共通DBのままで、テスト環境だけsiteurl, homeを変えられるでしょうか。
ググったところ一般には define('WP_HOME'...
追記のみで上手くいく(テスト環境URLがアクセスできる)という記載が見られますが、
今回うまくいかない可能性にはどのようなものがあるでしょうか。
試したこと
1. DBを書き換える
このwp-config.phpの記載を
update_option( 'siteurl','http://staging-example.com'); update_option( 'home','http://staging-example.com');
と変え、本番DBのデータを更新した場合は、DBのデータが無事書き換えられ、
http://staging-example.com にアクセスできます(本番URLが今度はリダイレクトされてしまいますが)。
2. get_site_url()
をオーバーライドする
APIのpre_option_{$option}
を利用し、
add_filter('pre_option_siteurl', 'change_get_option_siteurl'); function change_get_option_siteurl($option) { if (defined('WP_SITEURL')) { return WP_SITEURL; } return false; }
をテストサーバーのthemename/functions.php
に追記しましたが、変化が見られませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/17 09:35
2020/01/17 09:38