WordPressuses a Template Hierarchy 要根据当前上下文确定要加载的模板文件,请执行以下操作:
此图是\\wp-includes\\template-loader.php
, 包含基于上下文的模板选择逻辑。
关于您的具体问题:
例如,假设我有两篇同一作者的帖子。如何使WP使用作者。php模板向我展示作者的帖子?
WordPress会自动执行此操作。假设已启用相当多的永久链接,则给定作者的作者存档为:example.com/author/{author}
例如,我无法从图表中读取表单示例上是否有URL。com/2012它将使用日期。php模板。这是有道理的,但我看不出URL应该是任何形式,尤其是这个。
我想你是在向后走。同样,如果您启用了相当长的永久链接,并且正在查看给定年份、月份或日期的基于日期的存档,则URL将为:
example.com/{year}
example.com/{year}/{month}
example.com/{year}/{month}/{day}
但最重要的是:
这些都与模板层次结构没有直接关系。无论permalink结构如何,WordPress都会问:“这是日期存档吗?”如果是,WordPress会使用基于日期的存档模板层次结构来确定要加载的模板文件。总的来说,我很难理解WordPress如何选择要采用的模板(路线)。
模板层次结构回答了所有这些问题。:)
我可能误解了,但我希望WordPress在开始解释其内容之前确定使用哪个模板。
确实如此。
此时,它可以根据其内容并使用is\\u sometype()函数显示您想要的任何内容。
当然,你可以;但是,如果您正在使用/加载一个更具体的、基于上下文的模板文件,则不需要这样做。例如,如果您正在加载date.php
, 您不需要使用is_date()
有条件的如果加载了模板文件,则已知为真。
我不明白的是它是如何达到这一点的。我是不是把这个推理搞错了?如果有人能解决这一点,我将不胜感激。
开始的地方是query 自身,包含/定义当前上下文:
在查询中构建查询,根据当前上下文定义当前上下文,确定要加载的模板文件I have a more-advanced version of the Template Hierarchy diagram, 它合并/关联所有基于上下文的条件。这可能有助于理解过程。
编辑以解决其他问题:
我是否正确理解WP使用重写规则解析永久链接以构建查询,或者查询已经是“本机”格式,即URL后跟?以及查询变量的串联?两者是否可以同时发生?
一般来说,重写规则是一个单独(尽管相关)的主题。如果你对重写规则有具体的问题,我会搜索该网站,或者问一个单独的问题。
这就是说:重写规则就像上下文/模板一样,是从查询中派生出来的。WordPress确定基于上下文的模板是否使用重写规则。
关于查询,“当前上下文”的定义是什么?你能举个例子吗?
同样,您必须返回查询。查询是一个确定/定义/保存所有上下文信息的对象。看看the WP_Query()
class in source, 如果你想了解细节。
从本质上讲,上下文是由URL query variables. (注意:这不是关于永久链接或重写规则,它们也使用相同的基础URL查询变量。)你可以看到the query variable parsing in action here.
蓝色是什么。关键词表示芯片图中每个方框的下方?
这些是添加到body_class()
, 基于上下文。