首先,正如@Toscho所暗示的get_header()
和get_footer()
模板标记只包括名为header.php
和footer.php
, 分别地这两个模板标签都是从模板文件中调用的,您可以在模板文件之间分隔内容(index.php
) 和模板零件文件(header.php
, footer.php
) 你想怎么都行。因此,WordPress当然可以适应后面的例子。
也就是说,标准中分离内容的“WordPress”方法的真正威力来自WordPress Template Hierarchy. 在WordPress中index.php
文件实际上是使用的最后一个模板文件。当找不到其他更具体的模板文件时,它是默认的回退模板文件:
由于将使用7个(主要)到16个(次要)模板文件中的任何一个(这仅适用于公开发布的主题;自定义设计的主题可以有任意数量的模板文件),这取决于当前的上下文,“WordPress”标记分离方法将使重复代码的数量最小化。
假设您想要将doctype从transitional更改为strict(或者您想要移动到HTML5),或者您想要更改站点页脚中的版权声明。使用标记分离的“WordPress”方法,可以在一个文件中进行这些更改。使用后一种内容分离方法,您可以进行这些更改seven to sixteen (or more) 《泰晤士报》。
编辑我想这个问题会出现:
我想听听你对以下情况的看法。假设我们需要包含“og标记(Open Graph meta tags)”,它们的“index”、“single.php”、“page”、“archive”模板的格式不同。如果我们有一个类似“原始wp主题结构”的结构,那么我们必须在“header.php”文件中使用条件语句(If..else),对吗?我认为每个人都同意“条件语句”越少,每个请求的性能越好,对吗?
我们有几种选择:
直接在内部使用PHP查询条件header.php
在回调中使用PHP查询条件,连接到wp_head
(或wp_enqueue_scripts
, 等)使用get_header( $context )
, 哪里$context
基于模板层次结构,其中包括header-$context.php
如果发现,或header.php
如果未找到但多个选项并不能真正解决性能影响的根本问题。就个人而言,我认为性能影响可以忽略不计,因为所有查询条件都是作为查询对象缓存的一部分缓存的。因此,调用它们真的不应该导致任何有意义的性能损失。