WordPressの/wp-json/を変更したい
セキュリティ的な理由で/wp-json/へのアクセスは完全ブロックしている。 だけど、AMPプラグインがREST APIを使うようになっているので管理画面で不具合が起きる。 そこでデフォルトのエンドポイントである「/wp-json/」から変更したときの覚書。 環境: Nginx 1.18.0, PHP 7.4.14, WordPress 5.6 REST APIのエンドポイントを変更 参考 WP REST API Is it rather easy to rename the default wp-json uri part? - WordPress Development Stack Exchange エンドポイントを決定しているのは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が原因 【関連記事】 WordPressのXML-RPCとREST API(WP-JSON)を無効にする(Nginxの設定)