【WordPress】投稿テンプレートが使われているか判断して処理を分岐させる方法

【WordPress】投稿テンプレートが使われているか判断して処理を分岐させる方法

2017.6.3

カスタムページテンプレートを使って、ユーザーに自由にテンプレートを変更できる機能をつけた時、

「このテンプレートが使われているときはこれをやる」

といった処理をテンプレートファイル以外でやりたくなることがあると思います。

今回はそんな条件分岐をするためのメモです。

テンプレートが使われているか判断する

よっひー(@yosiakatsuki)です。

固定ページや投稿ページで任意にテンプレートを変更出来るようにテーマを作ることが可能です(投稿やカスタム投稿タイプはWordPress 4.7から)

作成したテンプレート内では「このテンプレートを使っているときだけ」に実行される処理を書くことが出来ますが、functions.phpなどでは先に「テンプレートが使われているか」を判断する必要があります。

そんなときはis_page_templateという関数で判断します。

is_page_templateでテンプレートが使われているか判断する

is_page_templateの使い方例はこちら

if ( is_page_template( 'about.php' ) ) {
    // about.php が使われている場合
}

もしサブディレクトリにテンプレートファイルを配置している場合は、テーマのディレクトリからのパスっぽく引数を指定してあげます

if ( is_page_template( 'templates/about.php' ) ) {
  // 処理
}

特定のテンプレートを使っているときだけ特別なcssを読み込む…といった処理が出来るようになりますね!