Webサイトを運営していると、特定のページにリダイレクトさせたい場面が出てきます。当記事では、プラグインを利用せずに、functions.phpからリダイレクトを制御する方法について解説します。
ただし、プラグインを使った方が管理しやすいケースも多いです。以下で、リダイレクトを管理できるプラグイン「Redirection」の使い方について解説してますので、こちらもご覧いただければ幸いです。
当記事では、SSL化に伴ったURL変更やサイトが移転した時に設定するリダイレクトを簡単に設定できる便利なWordPressプラグイン、Redirectionの使い方について紹介します。せっかくページに来てくれた閲覧者さんが初めて見るページが… NOT FOUND(404)だったら悲しすぎますよ...
WordPressで特定のページにリダイレクトできる関数2つ
WordPressサイトでリダイレクトを行う時は、テーマの「functions.php」に記入する形で実装します。この時に使うのが以下の2つの関数です。
どちらも基本的な使い方は同じなのですが、リダイレクト先のページが「内部リンク」か「外部リンク」かで使い分けます。それでは順番にご紹介していきます。
- リダイレクト関数の基本的な使い方
- リダイレクト関数の実行タイミング
- 特定のページにリダイレクトさせるサンプル
リダイレクト関数の基本的な使い方
まず、リダイレクト用関数の基本的な使い方についてご紹介します。どちらも、第一引数に「リダイレクト先のURL」、第二引数に「ステータスコード(301や302など)」を指定して利用します。
wp_redirect( 'リダイレクト先のURL', 'ステータスコード' );
wp_safe_redirect( 'リダイレクト先のURL', 'ステータスコード' );
ステータスコードによって、リダイレクトの意味合いが変わってきますので、以下の記事を参考に判断してください。
ウェブサイト内のページの移動や削除、またはサイト自体の移転してすぐの期間は、検索エンジンを利用すると旧サイトが検索結果に表示されます。旧サイトURLから新サイトURLに自動的に移動させることをリダイレクトさせるといいます。一口にリダイレクトといっても正しい知識と手順を以って対応しなければ、検索順位の...
なお、リダイレクト処理を記載した後は「exit;」を記載するようにしましょう。
/* リダイレクト後に「exit;」を記載 */
wp_redirect( 'リダイレクト先のURL', 'ステータスコード' );
exit;
リダイレクト関数の実行タイミング
基本的には、テンプレートファイルが読み込まれる直前のタイミング「template_redirect」で実行すれば問題ありません。
実際に書くと以下のような形になります。(functions.phpに記載します。)
/* 'template_redirect'で実行 */
add_action( 'template_redirect', function(){
// この中にリダイレクト処理を書く
wp_redirect( 'リダイレクト先のURL', 'ステータスコード' );
exit;
} );
このフックでは、条件分岐タグが使えます。次に特定の条件に応じたリダイレクト方法をご紹介します。
なお、上記のようなアクションフックの使い方は以下をご覧ください。
WordPressのテーマ開発やカスタマイズする時によく見かけるのが「add_action」という記述です。これは特定のタイミングで任意のPHPを実行できるWordPressの関数になります。 当記事では、アクションフックの仕組みとadd_action()の使い方について解説していきます。 ...
特定のページにリダイレクトさせるサンプル
それでは実際にリダイレクトさせるサンプルコードをご紹介します。今回行うのは、404ページからトップページにリダイレクトさせる記述になります。(内部リンクのため、wp_safe_redirectを利用)
/* 例)404ページからトップページに301リダイレクト */
add_action( 'template_redirect', function(){
// 404ページだったら
if ( is_404() ) {
// トップページに301リダイレクト
wp_safe_redirect( home_url( '/' ), 301 );
exit();
}
} );
こちらをfunctions.phpにそのまま記載すると正常に404ページにアクセスしても、トップページに飛ばされるようになります。
今回使ったような条件分岐タグ「is_404()」は、様々な種類が用意されています。以下に主要な条件分岐タグをまとめてますので、ぜひ参考にしてください。
WordPressのページの種類に応じて処理を分けたい時ありませんか。 「投稿ページだけ特定のCTAを設置したい」 「トップページはサイドバー無し」 「固定ページをLP仕様にしたい」 こんな時に便利なのが、WordPressの条件分岐タグです。当記事では、よく使われる30個の条件分岐...
まとめ
今回は、WordPressでプラグインを使わずにリダイレクトを行う方法についてご紹介しました。意外と簡単に実現できますが、リダイレクト処理が多くなると、管理しにくくなるので、プラグインの方が楽かもしれません。
また、大規模なリダイレクトを行うタイミングとしては、サイトの引っ越しなどが該当しますよね。もし、引っ越しを考えているのであれば、弊社が10年間使ったドメインを移行した時の対策を以下にまとめましたので、ぜひ参考にしてください。
2021/05/27*情報を更新いたしました。 2022/01/11*情報を更新いたしました。 2020年8月19日に当サイトは10年間使っていたドメインを新しく変更しました(※新ドメイン(tcd-theme.com)に移行しました。)。 長く使っていたドメインだけにある意味で賭けの勝...
第1回:404エラーとは
第2回:404エラーの原因と対策
第3回:404ページを作る方法
第4回:リダイレクト設定(当記事)
第5回:おしゃれな404エラーデザインまとめ
コメント