私はいつもスラッグと同じファイル名を作成することによって特定のページのためのレイアウトテンプレートを作成することを好みました。
だから、例えば:
ページタイトル :お問い合わせ
ページスラッグ :contact-us
使用するテンプレートのファイル名 :page-contact-us.php
これは私にとっていつもうまくいきます。
しかし、 parent というページがあるページが1つあります。スラッグ executive-search を持つページは、 の雇用者 の親を持ちます。
何らかの理由で、ファイルpage-executive-search.php
がこのページのデフォルトのテンプレートとして選択されていません。この1ページを除いて、これはサイト全体でうまくいきました。ページスラッグを再確認しました。executive-search
ですが、page-executive-search.php
テンプレートは使用されていません。
編集ページのドロップダウンから選択されるグローバルテンプレートとしてこれを宣言したくありません。私はそのメニューを通してそれを選択可能にしたくありません。スラッグexecutive-search
を持つページに自動的に適用したいです。
これは親ページを持つことと関係があると思います。完全なURLは次のとおりです。
http://mysite.co.uk/employers/executive-search
だからどこで私は間違っているのですか?
WordPressがこの決定を下すために使用したコードは get_page_template()
です。ページ名バージョン(page-{slug}.php
)は get_query_var( 'pagename' )
から取得されます。これをpage.php
テンプレートで使用して、子ページにアクセスしたときに出力される内容を確認できます。
<?php echo get_query_var( 'pagename' ); ?>
これはほとんどの場合、親スラッグが無視されることを意味しているので、/employers/executive-search/
と/executive-search/
および/random/executive-search
は、利用可能であればすべて同じpage-executive-search.php
のページテンプレートを使用します。
あるいはpage-NN.php
ページのID
を使うこともできます。