wp_validate_redirect()


関数wp_validate_redirect()は、WordPressでURLを検証し、指定されたURLが安全であることを確認するために使用されます。

構文

wp_validate_redirect( string $location, string $default = '' );

引数の説明:

  • $location (string) — 検証したいURL。
  • $default (string) — $locationが無効な場合に返されるデフォルトのURL。

例1: 有効なURLを検証

次のコードは、リダイレクト用のURLを検証します。

<?php
$redirect_url = wp_validate_redirect( 'https://example.com', home_url() );
?>

例2: カスタムリダイレクトURLを設定

無効なURLの場合、指定したデフォルトURLを使用します。

<?php
$redirect_url = wp_validate_redirect( 'invalid-url', 'https://example.com/fallback' );
?>

例3: ユーザー入力を使用したリダイレクト

ユーザーが入力したURLを安全に処理します。

<?php
$user_input = $_GET['redirect_to'] ?? '';
$redirect_url = wp_validate_redirect( $user_input, home_url() );
?>

例4: ログイン後のリダイレクト

ユーザーがログインした後にリダイレクト先を設定します。

<?php
add_filter( 'login_redirect', function( $redirect_to, $request, $user ) {
    return wp_validate_redirect( $redirect_to, home_url() );
}, 10, 3 );
?>

例5: カスタムログアウトリダイレクト

ログアウト時に安全なリダイレクトURLを設定します。

<?php
add_action( 'wp_logout', function() {
    $redirect_url = wp_validate_redirect( 'https://example.com/logout', home_url() );
    wp_redirect( $redirect_url );
    exit;
} );
?>

注意事項

wp_validate_redirect()を使用する際、信頼できないユーザー入力を直接リダイレクトに使用しないでください。デフォルト値を必ず指定して、無効なURLの場合の挙動をコントロールしてください。


関連機能: