is_page_template()
は、現在表示しているページがページテンプレートを使用しているかどうか判断する関数です。
is_page_template() 関数とは
この関数は、ページ・テンプレートの中にいるかどうかを判断することができます。
パラメーターでテンプレートファイル名またはそれらの配列を指定することで、特定のテンプレートファイルかどうか確認することができます。
パラメーター
$template | テンプレートファイル名または配列を指定 |
ページテンプレートとは
特別な PHP ファイルを用意し、指定された場合に他の固定ページ用のレイアウトとは異なるレイアウトや見た目にしたい場合に用いることがあります。
WordPress においてページテンプレートとは、複数の意味を持ちますが、ここでは下のように固定ページで選択できるテンプレートのことを指します。
作り方は以下のように PHP ファイルの冒頭にコメントアウトでテンプレート名を指定します。
<?php
/**
* Template Name: サンプルテンプレート
*/
page-{slug_name}.php
といった PHP ファイルを用意して作成をするページテンプレートを指してはいません。
使い方
上で紹介したようなページテンプレートが適応されているかどうかを is_page_template()
関数で判断することができます。
if ( is_page_template() ) {
echo "ページテンプレートが適用されています。";
} else {
echo "ページテンプレートが適用されていません。";
}
また、特定のページテンプレートのファイルを指定して判断することもできます。
if ( is_page_template( 'templates/sample.php' ) ) {
echo "templates/sample.phpが使われています";
} else {
echo "templates/sample.phpが使われていません";
}
配列で指定することもできます。
if ( is_page_template( array( 'templates/sample.php', 'templates/demo.php' ) ) ) {
echo "templates/sample.php または templates/demo.php が選択されています";
} else {
echo "templates/sample.php または templates/demo.php が選択されていません";
}
フック
ありません。
まとめ
ページテンプレートと聞くと、page-{slug_name}.php
で用意されたものを想像する方も多いかもしれませんが、is_page_template()
関数で判断するのは管理画面から割り当てることができるページテンプレートのことなので注意が必要です。
WordPress のページテンプレートについて詳しく知りたい方はこちらのドキュメントを参照されると良いでしょう。