この実装、面倒なら代行します
WordPressは WP REST API という外部からhttp通信でデータを取得・送信できる仕組みを内部に実装しました。
たとえば、以下のサイトにアクセスすれば当サイトのユーザー一覧情報が見られます。
https://100webdesign.jp/wp-json/wp/v2/users
同様に、当サイトの投稿の一覧情報が欲しければ以下にアクセスすれば見られます。
https://100webdesign.jp/wp-json/wp/v2/posts
ほうほう。
ん?
と思った方、いますよね。
投稿は別に良いとしても、WordPressの管理画面のユーザーIDばれちゃってんじゃん。
そうです。WordPressにおいて管理画面のユーザーIDは公開情報に属します。
だから何もしなければ、誰でも見られる状態なのです。
インターネットが始まって以来あまたの会員サイトが生まれてますが、そもそもログインのIDとパスワードが分かれているのは、IDは公開情報だからだってご存知でした?そうです、公開情報なんですよ。
WordPressもその考え方に則ってIDは晒しちゃっているわけですが、なんか気持ち悪い感がぬぐえないという方いますよね。
REST API からも情報見られないようにできるならそうしたいという方。
テーマのfunctions.php に次のように記述してください。
function kaiza_filter_rest_endpoints( $endpoints ) { /* REST APIで投稿一覧取得を無効にする */ if ( isset( $endpoints['/wp/v2/posts'] ) ) { unset( $endpoints['/wp/v2/posts'] ); } /* REST APIで投稿記事取得(単記事)を無効にする */ if ( isset( $endpoints['/wp/v2/posts/(?P<id>[\d]+)'] ) ) { unset( $endpoints['/wp/v2/posts/(?P<id>[\d]+)'] ); } /* REST APIでページ一覧取得を無効にする */ if (isset($endpoints['/wp/v2/pages'])) { unset($endpoints['/wp/v2/pages']); } /* REST APIでページ取得(単記事)を無効にする */ if (isset($endpoints['/wp/v2/pages/(?P<id>[\d]+)'])) { unset($endpoints['/wp/v2/pages/(?P<id>[\d]+)']); } /* REST APIでユーザー情報取得を無効にする */ if ( isset( $endpoints['/wp/v2/users'] ) ) { unset( $endpoints['/wp/v2/users'] ); } if ( isset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] ) ) { unset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] ); } return $endpoints; } add_filter( 'rest_endpoints', 'kaiza_filter_rest_endpoints', 10, 1 );
これで、WP REST API から情報を抜かれることはありません。
(上の記述はユーザー情報と投稿情報と固定ページの情報を遮断する記述になっているので、ご自身の判断で書き換えて使ってください)
WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!
100ウェブで手がけた制作・開発案件を一部、ご紹介。
クライアントからご相談いただいた内容とその実装におけるポイント、工期、予算について確認いただけます。
【テレワーク実施中 につきお電話転送中】
コール中1秒程度無音状態になりますがそのままお待ちください。
受付時間
平日 10:00~18:00
メールでのお問い合わせでも
1営業日以内にご連絡いたします。