レンタルECサイトで使用しているドメインのサブディレクトリに、リバースプロキシで別サーバーのWordpressサイトを公開することがあります。
リバースプロキシ自体はレンタルEC側で勝手に設定してくれるのですが、Wordpress側でちょっと小細工をしないとブロックエディタで記事の編集が出来なくなります。
WordPressサイトを別ドメインで表示したい場合のURL設定
WordPressをインストールしたサイトのドメイン:aaa.com
サイトを表示したいURLとドメイン:bbb.com/blog
WordPressの一般の設定内容は以下のようになります。
- WordPressアドレス:aaa.com
- サイトアドレス:bbb.com/blog
WordPressアドレスとサイトアドレスのドメインが違う弊害
管理画面などではWordpressアドレスで表示されますが、Wordpressアドレスとサイトアドレスのドメインが違うとrest APIが動作しなくなり、ブロックエディタが動かなくなります。
rest APIのURLを置換してあげるとブロックエディタが正常に動作する
WordPressアドレスとサイトアドレスのドメインが違うのが原因なので、以下のようなスニペットをfunctions.phpに追加すると、正常に動作するようになります。
# ━━━━管理画面での APIのドメインを変更━━━━━
add_filter( 'rest_url', 'rest_url_replace' );
function rest_url_replace($url){
if (is_admin())$url = str_replace(home_url(), site_url(), $url);
return $url;
}
# ━━━━━━━━━━━━━━━━━━━━━━━━━