MENU CLOSE

【WordPress】
便利なアクションフック
「template_redirect」

wordpress

WordPressをカスタマイズする上で欠かせないのがアクションフックです。
今回はその中でもかなり使用頻度の高い「template_redirect」フックについてのメモ。

template_redirectの概要

WordPressをある程度カスタマイズできるようになってくると、ページが表示される最初のタイミングで何かを実行したい!という場面が出てきます。
そんな時に使えるアクションフックがtemplate_redirectです。

WordPressのアクションフックは以下のページに掲載されています。

アクションフックは実行する順番があり、上記のCodexに載っているリストも実行順になっているとのことですが、よく読むと「大体の目安」となっているので、ちゃんと調べてみた方のブログを拝見して確認しました。

こちらの記事の実行結果を見るとinitwpよりも後で、wp_headよりも早いタイミングで実行されることがわかります。
投稿データを取得した後に実行するため、通常テンプレート内で使うようなis_pageなどの条件分岐タグが使えます。initでは条件分岐タグは使えないですし、wp_headや直接テンプレートファイルに処理を書くとすでにヘッダー情報が送信されていてリダイレクトなど実行できない処理があるので、このタイミングのフックは非常に重宝します!

使い方

例えば特定のページを404にしたり、特定のページをリダイレクトさせる場合

function custom_redirect() {
  //投稿者アーカイブページを404
  if(is_author()) {
    global $wp_query;
    $wp_query->set_404();
    status_header(404);
  }
  //スラッグ名「test」の固定ページをTOPにリダイレクト
  elseif(is_page('test')){
    wp_safe_redirect(home_url('/'));
    exit();
  }
}
add_action( 'template_redirect', 'custom_redirect' );

こんな感じでページを表示する最初のタイミングで条件分岐して処理を書くことができます。

他にも

  • 特定のページでセッションをクリアしたり保存したり
  • POSTGETなどのフォームの受信処理
  • DBやプラグインを使ったデータ処理

など、テンプレートファイルに直接書きたくないような処理をこのフックで書いておくことでスッキリします。

さいごに

アクションフックは他にもいろいろ便利なものがあります。このフックを使ったカスタマイズ性がWordPressの良いところだと思うので、便利なものがあればまたご紹介できればと思います。

記事一覧

RELATED

wordpress
inoue
inoue
TIPS

【WordPress】テーマ作成に使うテンプレートタグを集めました

wordpress
inoue
inoue
TIPS

【WordPress】自作の関数でcanonicalタグを出力する

JS
inoue
inoue
TIPS

Intersection Observerを使って画面内に要素が入ったらアニメーションさせる

wordpress
inoue
inoue
TIPS

普通のレンタルサーバーでできるWebページ高速化

wordpress
inoue
inoue
TIPS

【WordPress】REST APIで独自エンドポイントの作り方

wordpress
inoue
inoue
TIPS

【WordPress】画像に自動付与されるsrcset属性を削除する

ブログ記事一覧
  • HOME
  • TIPS
  • 【WordPress】--便利なアクションフック--「template_redirect」