在WordPress中从头开始创建主题子文件夹中的页面模板

我正在从头开始构建主题, 我想将所有自定义页面模板和单个帖子类型模板放在一个子文件夹中(请参见下文)。
-主题/-page.php-single.php-模板/ — page-news.php — single-report.php
但是, 当我将page-news.php移到该文件夹??时, “ 默认模板” 不会拾取该模板。
N.B.我正在使用WordPress 4.6.1, 并使用了我从头开始构建的主题。
#1你只能在主题的根目录中定义模板。我通常按??如下方式管理所有部分模板:

-Theme -- Templates Folder (partial templates etc.) --"news-template.php" file (I require/load all the templates I need here.)

这样, 你可以将所有部分模板保留在template文件夹中, 并根据需要对其进行结构化。并将它们加载到项目根目录下的模板文件中。
我希望我的解释足够清楚。
#2据我所知, 如果将WordPress模板放入子文件夹, 它们将不会自动识别它们。我想此外, 没有钩子可以解决此问题。但是, 你可以搜索核心并尝试对其进行修改。
【在WordPress中从头开始创建主题子文件夹中的页面模板】我的建议如下:不要使用WordPress自动检测模板文件, 无论如何这都是很笨拙的。在你的index.php文件中, 使用条件标签以正确路由WordPress。
https://codex.wordpress.org/Conditional_Tags
这样, 你在子文件夹和代码方面的灵活性提高了10倍:你无需在模板文件中复制/粘贴代码。
采用
get_template_part(..)

在你的路由功能中。
我已经建立了数百个WordPress网站, 而且我总是这样做。在某些WordPress书籍中也建议使用。
注意:WP的加载机制如下图所示:https://developer.wordpress.org/files/2014/10/wp-hierarchy.png
2018年更新:可以将在后期编辑屏幕中可以选择的页面模板放入/ page-templates /子文件夹中, 并自动检测它们。

    推荐阅读