概要
get_http_origin
関数は、リクエスト元のオリジンを取得するための関数です。この関数は特にセキュリティやリダイレクトの実装において重要です。具体的には、以下のような機能を実装する際によく使用されます。
- CORS (クロスオリジンリソースシェアリング) の設定
- セキュリティチェック
- リダイレクト処理
- 外部APIとのインタラクション
- ユーザーのリファラチェック
- サイトのオリジンを元に条件分岐
- オリジンに基づくコンテンツのカスタマイズ
- クッキーの設定や取得
構文
get_http_origin();
パラメータ
この関数には、パラメータはありません。
戻り値
リクエスト元のオリジン (例: https://example.com
) を返します。オリジンが取得できない場合は null
を返します。
関連する関数
使用可能なバージョン
この関数は、WordPress 4.4以降のバージョンで使用可能です。
コアファイルのパス
get_http_origin
関数は、wp-includes/rest-api.php
に含まれています。
サンプルコード
サンプルコード 1: CORSの設定
add_action('init', function() {
header('Access-Control-Allow-Origin: ' . get_http_origin());
});
このコードは、CORS設定のためにリクエスト元のオリジンをヘッダーに追加します。
サンプルコード 2: リダイレクト処理
if ($_SERVER['HTTP_REFERER'] !== get_http_origin()) {
wp_redirect(home_url());
exit;
}
このコードは、リファラがリクエスト元のオリジンでない場合、ホームページにリダイレクトします。
サンプルコード 3: 外部APIとのインタラクション
$response = wp_remote_get('https://api.example.com/data?origin=' . get_http_origin());
このコードでは、取得したオリジンをクエリパラメータとして外部APIにリクエストします。
サンプルコード 4: ユーザーのリファラチェック
if (strpos(get_http_origin(), 'trusted-domain.com') !== false) {
// 追加の処理
}
このコードは、リクエスト元のオリジンが特定のドメインを含むか確認します。
サンプルコード 5: コンテンツのカスタマイズ
add_action('template_redirect', function() {
if (get_http_origin() === 'https://special.example.com') {
// 特別なカスタマイズ
}
});
このコードは、特定のオリジンからのリクエストに基づいてテンプレートの挙動を変更します。
この関数のアクションでの使用可能性
アクション名 | 使用可能性 |
---|---|
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 |
この関数は、特定のWordPressバージョンで非推奨または削除されていません。