ページ属性に「テンプレート」がないときの対処法【WordPress】

ページ属性に「テンプレート」がないときの対処法【WordPress】 WordPress

こんにちは、mickです。

WordPress で作業して、「テンプレート」の設定項目を探したら見つからない。
あれ?どうなっているんだっけな、と調べて解決しました。
このときは、固定ページの編集中。
通常なら、ページ属性の項目に「テンプレート」があって、テンプレートを選べるはずです。

ページ属性にテンプレートの設定項目がない
ページ属性にテンプレートの設定項目がない

調べてみたら単純なこと。

カスタムテンプレートファイルが1つもない場合は、「テンプレート」項目が出てこない

つまり、ひとつでもカスタムテンプレートがあればよかったわけです。

WordPress のテンプレートのルール

WordPressのカスタムテンプレートファイルには、ファイルの先頭に次の設定をしておけば、WordPress がカスタムテンプレートだとみなしてくれるようです。

<?php
/*

Template Name: my template is...

*/

この「Template Name」が、ページ属性の「テンプレート」のときに出てくる名前になります。

テンプレートの名前は、英語はもちろん、日本語でもOK。
このときは特に、文字コード(UTF-8)に気をつけます。

カスタムテンプレートファイルがあれば、ページ属性に「テンプレート」が出てくるようになりました。

カスタムテンプレートを用意したらテンプレートの設定項目がでてきた
カスタムテンプレートを用意したらテンプレートの設定項目がでてきた

テンプレートファイルの優先順位

WordPress では、どんな状況でも何かしらWebサイトの表示ができるように工夫があります。
その一つが、優先順位付けされたテンプレートファイルたち。

きちんとルールを守って、自作のテンプレートを設置すれば、表示ができるようよなりました。
WordPress は、固定ページの表示に使用するテンプレートファイルを、次のような順番で探します。

探す順番ファイル名補足説明
1{カスタムテンプレート名}.phpページ作成画面のページ属性にある「テンプレート」ドロップダウンメニューで選択したテンプレート名。
2page-{slug}.php固定ページのスラッグ(URL)が comming-soon のとき WordPress は page-comming-soon.php を探す。
3page-{id}.php固定ページのIDが 8 のとき WordPress は page-8.php を探す。
4page.php
5singular.php
6index.php
テンプレートファイルの優先順位

参考URL:WordPress のテンプレートとテンプレート階層について | Web Design Leaves

投稿のカスタムテンプレート

通常、カスタムテンプレートは「固定ページ」にはでてくるけれど、「投稿」にはでてこない。
そこで、次のようにすることで「投稿」にカスタムテンプレートが設定できるようになります。

<?php
/*
Template Name: original template
Template Post Type: post
*/

固定ページと投稿の両方に使いたいとき

上の書き方だと、投稿には使えても、固定ページとしてカスタムテンプレートは使えない。
ということで、「Template Post Type」を次のようにしてあげればOK。

<?php
/*
Template Name: template
Template Post Type: post,page
*/

カスタム投稿タイプを使っているとき

カスタム投稿タイプを使っているなら、そのスラッグを追加してあげればOK。
(diaryというカスタム投稿タイプを例にして)

<?php
/*
Template Name: template
Template Post Type: post,page,diary
*/

参考URL:【WordPress】ページテンプレートが表示されない?ここを確認! | LUCKLOG

まとめ。

ページ属性に「テンプレート」がないときの対処法を紹介しました。

大体は、WordPress のテーマに用意されているものを使っています。
だからこのカスタムテンプレートを持たないテーマを使ったときに疑問に思ったわけですね。

WordPress のマニュアルを見れば載っているものですが、ネットで調べるとやっぱ早いですね。
先駆者に感謝です。

記事を読んでくれて嬉しいです。
今日もありがとうございました。

初稿 2021/07/14

タイトルとURLをコピーしました