页面属性中未显示嵌套页面模板

时间:2017-12-22 作者:user2756091

我有一个自定义页面模板,我正试图在我的WP网站上使用(版本4.9)。我放置页面模板的文件夹结构如下所示。

theme-root (/wp-content/themes/mytheme/)
    |-landing
        |-template-name
            |-index.php etc...
当所有模板文件都放置在主题根目录/登录的一个级别上时,我可以在编辑页面时在管理屏幕上的页面属性框中看到模板。当它被放置在模板名称文件夹中时,它不会显示出来。我有一个插件来清除文件缓存,这样问题就不是来自文件缓存。它是这样构造的,因为该站点使用多个页面模板。

1 个回复
最合适的回答,由SO网友:David Sword 整理而成

在WP 3.4中,他们允许添加模板文件one level deep.

从那时起,代码发生了变化,但是wp-includes/class-wp-theme.php, 在里面offsetGet() (来自__get()) 您将看到:

case \'Template Files\' :
    $files = $this->get_files( \'php\', 1 );
虽然我无法完全解开加载主题的代码迷宫,但上面提出了第二个论点,$depth, 仍设置为“仅”1 深为Template Files. 这与你所经历的麻烦不谋而合。

您可能需要重新考虑主题文件夹结构和/或选择模板的逻辑。

如果首先要有条件地检查基于用户选择选择的模板,请在您的条件下使用load_template() 和或template_redirect() 可能比让Wordpress默认设置更有用。

结束

相关推荐

Taxonomy Templates

我不太明白如何链接到我的分类法模板。我需要做一个临时页面并从那里查询我的条款吗?我当前正在使用分类层次结构:Taxonomy$labels = array( \'name\' => __( \'Product Categories\' ), \'singular_name\' => __( \'Product Category\' ), \'search_items\' =>