WordPressの/wp-json/を変更したい
セキュリティ的な理由で/wp-json/へのアクセスは完全ブロックしている。
だけど、AMPプラグインがREST APIを使うようになっているので管理画面で不具合が起きる。
そこでデフォルトのエンドポイントである「/wp-json/」から変更したときの覚書。
環境: Nginx 1.18.0, PHP 7.4.14, WordPress 5.6
REST APIのエンドポイントを変更
参考
エンドポイントを決定しているのはwp-includes/rest-api.phpのrest_get_url_prefix関数。
ここのapply_filtersにフックして変更すればOK
function func_rest_url_prefix( $slug ) {
flush_rewrite_rules();return 'api';
}
add_filter( 'rest_url_prefix', 'func_rest_url_prefix');
「flush_rewrite_rules」しないと変更完了しないので注意。
apiやrest-apiなど一般的な名前だと狙われるのでよく考えて決めた方がいい。
※ flush_rewrite_rules()は毎回実行されるので遅くなる。書いてはダメ。
参考: WordPressのUPDATE wp_optionsが遅い? → flush_rewrite_rulesが原因