WordPressの固定ページのテンプレートを投稿画面から選択可能にする方法【Template Name】
「固定ページのPHPテンプレートを作成したけど、投稿画面のテンプレートエリアに表示されない」とお悩みの方に向けて、解決方法を解説します。
固定ページのテンプレートを選択可能にする方法
固定ページのテンプレートを投稿画面の右カラム内の「テンプレート」から選択できるようにするには、<?php/* Template Name: テンプレート名 */?>
を使用します。
PHPファイルの最上部に、下記を記述してください。「テンプレート名」の部分は投稿画面に表示される文言なので、任意で構いません。
<?php
/*
Template Name: テンプレート名
*/
?>
Template Name はカスタムページテンプレートを登録するための記述
専用の名前を持ち投稿画面から自由に選択できる状態のテンプレートを「カスタムページテンプレート」と言います。
これを登録するための記述が、上述の<?php/* Template Name
です。: テンプレート名
*/?>
<?php/* Template Name
を書いていないテンプレートでは、: テンプレート名
*/?>page-A.php
のAの部分はスラッグとして解釈されます。
例えば会社概要ページ用にpage-company.php
を作成した場合、”ドメイン/company/”というURLでは自動的にそれが適用されます。
この状態(Template Nameを記述していない)だとそのテンプレートは特定のスラッグを持つページ専用のものなので、投稿画面のテンプレート選択エリアには表示されないのです。
したがって、自由に選択できるようにするにはカスタムページテンプレートとして登録しなければならず、そのために<?php/* Template Name
を記述する必要があるということです。: テンプレート名
*/?>
カスタム投稿タイプでテンプレートを選択可能にする方法
カスタム投稿タイプでは、Template Name
を記述していてもそのテンプレートが選択肢に表示されない場合があります。
それは、そのテンプレートが有効になる投稿タイプに、そのカスタム投稿タイプが含まれていないからです。
これを解決するには、下記のようにTemplate Post Type
を記述します。
<?php
/*
Template Name: テンプレート名
Template Post Type: カスタム投稿タイプ名
*/
?>
これにより、指定したカスタム投稿タイプでそのテンプレートを有効化することができるので、選択肢に表示されるようになります。
なお、カスタム投稿タイプでは、page-カスタム投稿タイプ名.php
という名前のテンプレートを作成することで、それが自動的に適用されるようになります。
そのため、カスタム投稿タイプ内で一律に同じテンプレートを適用したい場合は、わざわざカスタムページテンプレートとして選択する手間をかける必要はありません。
また、テンプレートの適用の優先順位は「カスタムページテンプレート > page-カスタム投稿タイプ名.php
> page.php
」になるので、「基本はpage-カスタム投稿タイプ名.php
を使いつつ、特定のページでのみカスタムページテンプレートを選択する」という運用も可能です。