ワードプレスのsend_origin_headersフィルタの使用方法・解説

概要

send_origin_headers フィルタは、リクエスト元に応じて Access-Control-Allow-Origin ヘッダーを送信する際に利用されます。このフィルタは、外部のクライアントが WordPress サイトに対してクロスオリジンリクエストを行う際のセキュリティを強化し、特定のオリジンからのリクエストだけに許可を与えるために使用されます。

このフィルタは、主に以下の8つの機能を実装する際に役立ちます:

  1. APIエンドポイントへのアクセス管理
  2. サードパーティサービスとの連携
  3. モバイルアプリからのデータ取得
  4. マルチサイトインストールでのドメイン制限
  5. フロントエンドでのJavaScriptフレームワーク使用
  6. OAuth認証フローの実装
  7. Webhooksの処理
  8. クラウドサービスとのインテグレーション

構文

add_filter( 'send_origin_headers', 'my_custom_origin_header' );

パラメータ

  • $origin: リクエスト元のオリジン(URL)。

戻り値

  • リクエスト元に応じた Access-Control-Allow-Origin ヘッダーを設定した結果を返す。

関連する関数

https://refwp.com/?titleonly=1&s=send_origin_headers

使用可能なバージョン

このフィルタは、WordPress 4.4以降で利用可能です。

コアファイルのパス

wp-includes/rest-api/class-wp-rest-server.php

この関数のアクションでの使用可能性

アクション 使用状況
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード1

add_filter( 'send_origin_headers', function( $origin ) {
    return 'https://example.com'; // 指定したオリジンからのリクエストを許可
});

このコードは、Access-Control-Allow-Origin ヘッダーを https://example.com に設定します。

サンプルコード2

add_filter( 'send_origin_headers', function( $origin ) {
    if ( strpos( $origin, 'https://trusteddomain.com' ) === 0 ) {
        return $origin; // 信頼されたドメインのみ許可
    }
    return null; // その他のドメインは拒否
});

信頼されたドメインがリクエスト元の場合のみ、そのオリジンを許可します。

サンプルコード3

add_filter( 'send_origin_headers', function( $origin ) {
    // 環境変数からオリジンを取得
    return getenv( 'MY_SITE_ORIGIN' );
});

このコードは、環境変数からオリジンを取得し、Access-Control-Allow-Origin ヘッダーとして設定します。

サンプルコード4

add_filter( 'send_origin_headers', function( $origin ) {
    // アクセス元に応じた異なるオリジンを返す
    return in_array( $origin, ['https://domain1.com', 'https://domain2.com'] ) ? $origin : null;
});

特定のドメインだけを許可し、その他は拒否するためのコードです。

サンプルコード5

add_filter( 'send_origin_headers', function( $origin ) {
    return 'https://mywebsite.com'; // 特定のサイトからのリクエストを許可
});

このコードは、Access-Control-Allow-Origin ヘッダーを https://mywebsite.com に簡潔に設定するサンプルです。

この関数について質問する


上の計算式の答えを入力してください