问题描述
在 this post on wordpress.stackexchange.com 中,我询问是否使用了 「二十年」 主题演示的 get_template_part(),是推荐的最佳做法。我得到的普遍共识是,这不一定是所有情况下的最佳做法。
那么这个相关的问题是:你可以提供一个例子,其中使用 get_template_part() 将是推荐的方法,简单地定义单独的 template.php 文件?
例如,我可以定义 archive.php,single.php 和 page.php; 或者我可以定义 loop-archive.php,loop-single.php 和 loop-page.php 。
在什么情况下,最好使用 get_template_part(‘loop’,’single’) 并利用 loop-single.php 与简单定义 single.php?
最佳解决方法
推荐使用 get_template_part
的方法将包括在所有模板中经常重复的代码位。喜欢,如果您在循环中定义了要包含在 archive.php,search.php,single.php 等中的条件。
它还允许子主题覆盖该文件,并包含其他更具体的文件。例如,如果您使用 get_template_part( 'loop', 'single' )
,并且您的主题只有一个名为 loop.php 的文件,则子主题可能包含一个名为 loop-single.php 的文件,该文件将覆盖您的 loop.php 。
它基本上是除了标题,侧边栏或页脚之外的模板文件的自定义包含标签。
次佳解决方法
我不觉得没有一个有效的理由不要使用 get_template 部分。在它存在之前,WordPress 主题充满了重复的代码,并且非常 time-consuming +令人困惑,做出更大的修改。拥有一个永远用于显示帖子的循环文件是对于儿童主题和那些希望使用”fork” 主题的人来说都是一个天堂。如果您查看 Twenty Eleven 主题的代码 (目前正在开发中),您将看到模板部分已经扩展到帖子格式。您还将注意到”The Loop” 已从模板中删除并放置在调用模板中。我认为这是使用模板部件发布内容的最佳方式,比二十十更灵活。
你知道其他模板与 get_template_part() 几乎相同吗?我写的文章解释如何:http://wordpress.mfields.org/2011/adding-context-to-template-parts/
父母主题越灵越越好!
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。