redirect_canonical()


WordPressのredirect_canonical()関数は、URLの正規化を行うために使用されます。この関数は、誤ったURLや重複するURLを正規URLにリダイレクトします。

シンタックス

redirect_canonical( string $requested_url, string $do_redirect = true );

引数の説明:

  • $requested_url (string) — リダイレクトする必要のあるURL。
  • $do_redirect (bool) — リダイレクトを実行するかどうかを指定します。デフォルトはtrue。

使用例:

例 1: 正規化されたURLへのリダイレクト

指定したURLを正規化します。

<?php
add_action( 'template_redirect', function() {
    $requested_url = 'http://example.com/index.php';
    redirect_canonical( $requested_url );
} );
?>

例 2: リダイレクトを無効化する

リダイレクトを無効にし、正規化されたURLを返します。

<?php
add_action( 'template_redirect', function() {
    $requested_url = 'http://example.com/page';
    $canonical_url = redirect_canonical( $requested_url, false );
    echo $canonical_url;
} );
?>

例 3: カスタム条件付きリダイレクト

特定の条件下でURLを正規化します。

<?php
add_action( 'template_redirect', function() {
    if ( is_singular() ) {
        $requested_url = home_url( '/custom-page' );
        redirect_canonical( $requested_url );
    }
} );
?>

例 4: 非正規URLのリダイレクト

正しい形式でないURLを正規URLにリダイレクトします。

<?php
add_action( 'template_redirect', function() {
    $requested_url = add_query_arg( 'utm_source', 'test', home_url() );
    redirect_canonical( $requested_url );
} );
?>

例 5: 他のリダイレクトフックとの併用

既存のリダイレクト処理を補完します。

<?php
add_action( 'template_redirect', function() {
    global $wp_query;
    if ( ! $wp_query->is_404 ) {
        $requested_url = home_url( '/default-page' );
        redirect_canonical( $requested_url );
    }
} );
?>

注意事項:

  • リダイレクトはSEOに影響を与える可能性がありますので、適切に設定してください。
  • 無限リダイレクトループを避けるため、条件を正確に指定する必要があります。

関連機能: