ワードプレスで、URLの打ち間違いや登録の無いページを指定された時に表示される 「404 Not Found」ページ。
「指定ページ (トップページや特定のページ ) に誘導」したい!!
「見つかりません!!」なんて断言されちゃ困るっ!!!
通常のブログなら
「ページが見つかりませ~~ん。検索しなおしてね^^」
などと書かれた404ページでいいのですが。。。
LPやSP、告知サイト、コーポレートサイトでは、そういうご依頼を頂くことありますよね^^;
404 Not Found からリダイレクト
普通なら「404ページや.haccess」にリダイレクト指定を入れますが、WordPress様は、安全なリダイレクトを実行してくれる関数 [ wp_safe_redirect() ] が用意されていて、とっても楽ちん^^
指定したページに移動 ( コピペOK!! )
↓コードを functions.php にコピペすればOK。
//トップページにリダイレクト
add_action( 'template_redirect', 'is404_redirect_home' );
function is404_redirect_home() {
if( is_404() ){ wp_safe_redirect( home_url( '/' ), 301 );
exit();
}
}
3行目 wp_safe_redirect()
is_404() で移動元のページ、第一引数にURL、第二引数にステータスコード(301)を指定します
移動元は 404ページ以外もOK
上の例では、 is_404() で404ページを指定していますが、 is_single( ‘投稿ID’ ) 、 is_page( ‘ページID’ ) などで特定の投稿や固定ページを指定する事もできます。
移動先はサイト内でも別ドメインでもOK
上の例では、トップページに戻るよう home_url( ‘/’ ) を指定してますが、サイト内の別ページ や 外部サイトのurl を指定する事も可能です。
一時移動(302) or 永久移動(301)
リダイレクトが必要な状況は様々。
- 一時移動(302) =「只今旅行中、お急ぎの方はこちらにご連絡を」といった一時的な場合
- 永久移動(301) =「お引越ししました~ 住所変更よろしくm(__)m」という場合
wp_safe_redirect() の 第二引数 の規定値は 302 です。
if( is_404() ){ wp_safe_redirect( home_url( ‘/’ ) );
のように 第二引数 を指定しなければ、302リダイレクト になります。
if( is_404() ){ wp_safe_redirect( home_url( ‘/’ ), 301 );
のように 第二引数 に 301 を指定する事で、301リダイレクト にできます。
ケース by ケース で、お使い下さい。
※ 301、302リダイレクトについてはググって下さいませm(__)m
コメント