web-dev-qa-db-ja.com

親ページを持つページに対して、特定のスラッグ名を使用してテンプレートを作成する

私はいつもスラッグと同じファイル名を作成することによって特定のページのためのレイアウトテンプレートを作成することを好みました。

だから、例えば:

ページタイトル :お問い合わせ

ページスラッグ :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

だからどこで私は間違っているのですか?

4
user1486133

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を使うこともできます。

1
totels