ウェブログ

WP REST APIのエンドポイントを無効にする



WordPress4.7からWP REST APIがデフォルトで有効となりました。
特に設定していなければ、管理画面にログインしていなくとも投稿や固定ページ、カスタム投稿やメディアといったコンテンツ一式を取得、表示することが可能です。

参考:WP REST APIを使って静的HTMLページにWordPressの投稿情報を表示する

勝手に情報を取得されると困る、というケースもあると思います。
ここではREST APIでエンドポイントを無効にし、情報を取得できないように設定する方法をご紹介します。

WordPress4.7での動作確認となり、今後変わる可能性があります。

記載するソースコード例

非ログイン状態でのREST API エンドポイントを無効にするソースコードです。
「namespaces」で例外を追加しており、例ではoembedとcontactform7を追加しています。
不要な場合は該当箇所を削除します。

上記コードをfunctions.phpに記載します。バックアップは必ず取るようにしましょう。

確認方法

無事にREST APIが無効になっているかの確認方法は、以下のアドレスにアクセスします。

https://(サイトURL)/wp-json/wp/v2/posts/?p=1

※id1の記事のREST APIにアクセスします

下記のような文言が表示されていれば、無事REST APIが無効になっています。

ちなみに、当サイトの場合無効にしていないため、表示されています。
https://highfivecreate.com/wp-json/wp/v2/posts/?p=1

コードはWordPress4.7 の WP REST API を無効にする – ねんでぶろぐを参考にさせていただきました。
参考元では、JetPackやGutenbergへの対応方法が記載されています。

この記事を書いた人

池田祐太郎

池田祐太郎

WordPress好きの池田です。Webの仕事の前はライブハウスでブッキングや音響をしてました。PHP, JavaScriptを自由に操りたいと思いつつ、つい訪れたサイトのソースコードを見てしまいます。


CONTACTお問い合わせ / お見積もり