2017-12-04 7 views
0

どこでも検索したが見つかりませんでした。
あなたは私の唯一の希望です、助けてください。
グローバルに使用するカスタムページテンプレート、WordPressテンプレートドロップダウンに表示されない

テンプレートパーツ用のカスタムフロダーを作成すると、グローバルに使用するカスタムページテンプレートがWordPressテンプレートドロップダウンに表示されません。

マイ・テーマ/ global_template.phpのWORK
私のテーマ/テンプレート部品/ global_template.phpのWORK
私のテーマ/テンプレート部品/アーカイブ/ global_template.phpは動作しません

テンプレートを含むテンプレートパーツの内側にあるページ属性 - >テンプレートに表示されるフォルダを作成するにはどうすればよいですか?ここで

Custom page template loaction

global_template.php

Custom page template code


内のコード、あなたは何のテストテンプレートはありません見ての通り。..
page attributes

+0

Blame Cachingこれは4.9に導入された新しい「機能」です。https://stackoverflow.com/questions/47558838/wordpress-the-templates-drop-down-menu-lists-up-to-9-items?noredirect=1#comment82141479_47558838 – McNab

+0

こんにちは、私はワードプレス4.9でキャッシュ問題について知っています。しかしそれはそうではありません...テンプレートが機能します...しかし、いくつかのフォルダでのみ。 – Andrey

答えて

1

あなたの問題があります深さは関数を取得するemplatesは深さが1です。テーマルートまたは最初のサブフォルダにファイルを置く必要があります。

コア機能get_post_templates()get_files()を深度1で呼び出し、ディレクトリをスキャンする関数scandir()に渡します。

add_filter{$post_type}をテンプレートを追加する投稿タイプに置き換えて、このように手動でテンプレートを追加できます。例えば、page

/** 
* @param array $post_templates Array of page templates. 
* Keys are filenames, values are translated names. 
*/ 
function extend_post_type_templates($post_templates, $this, $post, $post_type) { 
    $post_templates['template-parts/archive/global_template.php'] = 'Name for this'; 
    return $post_templates; 
} 
add_filter('theme_{$post_type}_templates', 'extend_post_type_templates', 10, 4); 
+0

これはWordPressの制限ですか? 深さを変更することはできますか? – Andrey

+0

はい、今すぐ回答を参照してください。 – Shibi

関連する問題