ワードプレスの特定のページを別のページ(同じドメイン、別のドメインも可)にリダイレクト(強制的にユーザーを移動する)PHPコードをご紹介いたします。


特定のページを別のURLに強制リダイレクトする

ワードプレスサイトの特定のページへのリンクを別のページもしくは任意のURLにリダイレクトする方法をご紹介しますが、本来はリンクの宛先(href)を書き替える方が一般的で安全な方法です。

このためこの方法は、特殊な用途だけに使用を限られる方が良いかと存じます。

テーマのFunctions.phpに下記のコードを追加することで任意の投稿IDのページにユーザーがアクセスしたときに強制的に別のページやサイトに移動(リダイレクト)させることができます。

add_action( 'get_header','my_redirect_funtion');
function my_redirect_funtion() {
    $ridirectpostid = 1;//投稿IDを指定します
    $redirectto = 'http://new.example.com/pagename';//リダイレクト先のURLを指定します
    global $post;
    if ($post->ID==$ridirectpostid && !is_user_logged_in()) {
        wp_redirect($redirectto);
        exit;
    }
}

コードの解説

このコードでは、ワードプレスがヘッダー情報を出力する直前に、現在アクセスしようとするページの投稿IDが任意の値の場合、リダイレクトを実施します。

その為のアクションがget_header となります。

($post->ID==$ridirectpostid && !is_user_logged_in()
の部分でユーザーがログインしていない場合、かつ現在アクセスしようとするページの投稿IDが設定した値と合致する場合リダイレクトの処理を実行します。

wp_redirect($redirectto); というワードプレスのリダイレクト用の組み込み関数で実際のリダイレクトを行い、exitで処理を中断します。

//投稿IDを指定します
//リダイレクト先のURLを指定します

の部分を書き替えてご利用してください。

WordPress ワードプレスのテーマのカスタマイズやプラグインのカスタマイズのご依頼・ご相談はワードプレスドクターまでお気軽にお送りください