如何使get_template_part始终先检查子主题?


8

如何强制WP在运行时始终先检查子主题文件夹get_template_part

示例:子主题加载get_template_part('content', 'inventory')到中single.php。因为所有子主题(还有很多)共享相同的通用清单模板库,所以该文件content-inventory.php位于父主题中。到目前为止,一切都很好。

我想在上述清单模板中添加一小部分,这对于每个子主题都是唯一的。添加get_template_part('content', 'inventory-special')content-inventory.php不会首先检查孩子的主题目录。


3
对于你们两个拒绝我的回答并且没有对原因发表评论的人,谢谢。有人应该如何通过负面批评来改善自己?
m-torin 2011年

Answers:


5

默认情况下会。该get_template_part()函数使用locate_template()按特定性和样式表路径/模板路径的顺序层叠模板文件的函数。

因此,如果您的儿童主题包含content-inventory.phpget_template_part()则将包含该主题;如果不是,则它将content-inventory.php在父主题中查找。如果找不到,它将content.php首先在子级中寻找,然后在父级中寻找。

编辑:

刺探您的意思;请澄清我是否误会了...

您想在名为的父主题模板文件中包含一个新的模板零件文件content-inventory.php吗?

可以执行的唯一方法AFAIK是将其复制content-inventory.php到您的Child Theme中,然后get_template_part()在需要的地方添加新呼叫。

如果父主题子主题content-inventory.php包含一个名为的文件,则WordPress将始终使用子主题版本(如果使用来包含子主题)get_template_part()


@ Kaiser,@ Chip Bennett:WP显然会检查其父主题content-inventory.php。食典和简单的经验使这一点很清楚。但是,如果要查找的文件(级别2)位于父主题文件夹中,则WP不会重新检查子主题以查找要查找get_template_part的文件中包含的主题(包括第三层内容)。这对您有不同的作用吗?
m-torin 2011年

我不明白您的问题。对于任何给定的模板文件名,WordPress 始终会首先检查Child Theme。您能解释一下第二层和第三层文件的含义吗?
Chip Bennett

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.