MENU CLOSE

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

WordPress
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

Flatpickr
inoue
inoue
TIPS

Flatpickrで日時入力をカレンダー表示にする

BASE DESIGN THEME
inoue
inoue
TIPS

BASEテーマカスタマイズ【実践編】見出しの文言を変更できるようにする

BASE DESIGN THEME
inoue
inoue
TIPS

BASEテーマカスタマイズ【デザインオプション編】テーマに新しい機能を加える方法

BASE DESIGN THEME
inoue
inoue
TIPS

BASEテーマカスタマイズ【準備編】カスタマイズに必要な前提知識について

BACKGROUND VIDEO
inoue
inoue
TIPS

動画をWebページの背景に埋め込む時のテクニック

Google Apps Script
inoue
inoue
TIPS

【GAS】スプレッドシートからメールを送信する方法

NEW POSTS

Sass @import → @use
inoue
inoue
TRY

【Sass】@importを@useに置き換えてみる《FLOCSS対応》

Stripe Payment Links
inoue
inoue
TRY

コーディング一切不要のStripe Payment Linksで決済機能を試してみる

BASE Partners
inoue
inoue
COLUMN

【BASE Partners】有料テーマの無償提供特典について

BASE Partners
inoue
inoue
COLUMN

BASEオフィシャルパートナーに認定されました

BASE DESIGN THEME Q &A よくある質問
inoue
inoue
COLUMN

【BASEデザインテーマ】よくある質問まとめ

Drawer Menu
inoue
inoue
TIPS

CSSと簡単なJSでできるドロワーメニューの実装方法

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