is_protected_endpoint()


WordPressのis_protected_endpoint()関数は、現在のリクエストが保護されたエンドポイント(ログインやadmin関連のURL)かどうかを判定します。

構文

is_protected_endpoint( string $endpoint = '', string $request_uri = '' );

引数の説明:

  • $endpoint (string) — チェックするエンドポイント
  • $request_uri (string) — リクエストURI(省略時は$_SERVER[‘REQUEST_URI’]を使用)

例1: 基本的な使用法

現在のリクエストが保護されたエンドポイントかどうかをチェックします。

if (is_protected_endpoint()) { wp_redirect(home_url()); exit; }

例2: カスタムエンドポイントのチェック

特定のエンドポイントが保護されているかどうかを確認します。

if (is_protected_endpoint('/wp-admin/')) { echo '保護されたエンドポイントです'; }

例3: リクエストURIを指定してチェック

直接リクエストURIを指定して判定します。

if (is_protected_endpoint('', '/wp-login.php')) { echo 'ログインページです'; }

例4: プラグインで使用する例

プラグイン内で保護されたエンドポイントをブロックします。

add_action('init', function() { if (is_protected_endpoint()) { die('アクセス拒否'); } });

例5: カスタムリダイレクト

保護されたエンドポイントへのアクセスをリダイレクトします。

if (is_protected_endpoint()) { wp_safe_redirect('https://example.com/custom-page'); exit; }

例6: REST APIエンドポイントのチェック

REST APIエンドポイントが保護されているかどうかを確認します。

if (is_protected_endpoint('/wp-json/')) { status_header(403); exit; }

例7: マルチサイト環境での使用

マルチサイト環境で特定のパスをチェックします。

if (is_protected_endpoint('/wp-admin/network/')) { echo 'ネットワーク管理画面です'; }

注意点

  • この関数はWordPressのコア関数ではないため、プラグインやテーマで実装が必要な場合があります
  • 本番環境では必ずテストを行ってください
  • セキュリティ関連の処理に使用する場合は注意が必要です

関連機能: