概要
wp_get_raw_referer
関数は、バリデーションしていないリファラーを取得するために使用されます。この関数は主に、リファラーに基づいて、特定の動作を条件に応じて変更したい場合に利用されることが多く、以下のようなシナリオで役立ちます。
- リダイレクト先のURLを決定するため
- ユーザーの訪問履歴をトラッキングするため
- バックボタンの動作をカスタマイズするため
- フォームの送信先を動的に変更するため
- 特定のページからの遷移を確認するため
- セキュリティの観点から、リファラーを使ったアクセス制御を行うため
- アナリティクスデータへのアクセス元を判断するため
- ユーザー体験を改善するための機能を実装する際
構文
string wp_get_raw_referer();
パラメータ
この関数はパラメータを持たず、呼び出すだけで使用できます。
戻り値
リファラーのURLが文字列で返されます。リファラーが存在しない場合は空の文字列が返されます。
関連する関数
wp_get_referer
wp_send_referer
get_referer
wp_redirect
使用可能なバージョン
この関数はWordPress 2.8.0以降で使用可能です。
コアファイルのパス
wp-includes/pluggable.php
サンプルコード
サンプルコード 1
$referer = wp_get_raw_referer();
if ( ! empty( $referer ) ) {
echo '前のページは: ' . esc_html( $referer );
}
このコードは、リファラーが存在する場合にそのURLを取得し、HTMLエスケープして表示します。
サンプルコード 2
add_action( 'template_redirect', function() {
$referer = wp_get_raw_referer();
if ( strpos( $referer, 'example.com' ) !== false ) {
// 特定のリファラーからのアクセスを許可する処理
}
});
このコードは、特定のリファラー(example.com
)からのアクセスを条件に処理を実行します。
サンプルコード 3
function my_custom_redirect() {
$referer = wp_get_raw_referer();
if ( empty( $referer ) ) {
wp_redirect( home_url() );
exit;
}
}
add_action( 'init', 'my_custom_redirect' );
このコードは、リファラーが空の場合、自サイトのホームページへリダイレクトします。
サンプルコード 4
$referer = wp_get_raw_referer();
if ( ! empty( $referer ) && wp_validate_redirect( $referer ) ) {
// リファラーが安全なURLの場合の処理
}
このコードは、リファラーが存在し、かつ安全であると確認された場合に特定の処理を実行します。
サンプルコード 5
add_action( 'wp_loaded', function() {
$referer = wp_get_raw_referer();
// ログにリファラーを記録する
error_log( 'リファラー: ' . $referer );
});
このコードは、ページがロードされたときにリファラーをログに記録します。
この関数のアクションでの使用可能性
アクション名 | 使用可能性 |
---|---|
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 |
非推奨または削除されたバージョン
この関数は特定のバージョンで非推奨または削除されたことはありません。