全局使用的自定义页面模板,不会显示在wordpress模板下拉列表中

时间:2017-12-04 15:19:30

标签: php wordpress templates wordpress-theming

我到处搜索,找不到。
现在你是我唯一的希望,请帮助。

全局使用的自定义页面模板,当我为模板部件创建自定义floder时,不会显示在wordpress模板下拉列表中。

My-theme / global_template.php工作
My-theme / template-parts / global_template.php工作
我的主题/ template-parts / archive / global_template.php不要工作

如何制作包含模板的模板部件中的文件夹,以显示在页面属性 - >模板中?

Custom page template loaction

这里的代码是global_template.php中的代码

Custom page template code


如您所见,没有测试模板..
page attributes

1 个答案:

答案 0 :(得分:1)

你的问题是获得模板的功能深度为1的深度。所以你必须把文件放在主题根目录或第一个子文件夹

核心函数get_post_templates()调用get_files()深度为1,并将其传递给扫描目录的函数scandir()

您可以手动添加更多模板,例如将{$post_type}中的add_filter替换为您要添加模板的帖子类型。例如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 );