WordPressのテンプレート内でリダイレクト設定を行う

WordPressのテンプレート内でリダイレクト処理をさせたいことがたまにあるので、方法をメモしておきます。

サンプルコード

リダイレクトさせる想定としては、以下のような場合です。

  • 記事にカテゴリーは付けるが、カテゴリー一覧は使用しない
  • 記事の投稿はするが、表示は一覧のみで個別ページは使用しない

header.php

// デフォルトの投稿の個別ページは使わないので、ホームへリダイレクトする
if(is_singular( 'post' )) {
  wp_redirect( home_url(), 301 );
  exit;
}

これで個別ページにアクセスした場合、WordPressのホームへリダイレクトするようになりました。
今回は今後ページを使用しないのでステータスコードを301にしましたが、一時的にリダイレクトする場合は302にしてください。

wp_redirect( $location, $status ); 指定されたURLへリダイレクトする。
$location: リダイレクト先URLを指定。
$status: 使用するステータスコードを指定。初期値は302。

wp_redirect()を使う場合、以下の2点に注意してください。

  • header.php内もしくはget_header()より前で使用する
  • wp_redirect()は自動的にexitしないので、直後にexitを実行する

 

【参考サイト】

 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年4月
 123456
78910111213
14151617181920
21222324252627
282930