我的一个页面只使用了Archive.php模板。为什么?

时间:2012-06-09 作者:ivavid

我创建了一个页面,并尝试使用自定义模板。突然,我注意到这个页面开始使用存档。php模板,无论我为其分配了哪个自定义模板,它都会继续使用归档模板。这可能是什么原因?

我注意到一些有趣的事情。我有一个自定义的帖子模板,它的slug与上面描述的页面完全相同。我又做了一个CPT,用同样的slug做了一个页面,得到了同样的效果。如果我更改页面slug,它将开始使用指定的自定义模板。

这种行为似乎很方便,但为什么WP会这样?是否在任何地方记录?我读起来会很有趣。

1 个回复
SO网友:Milo

当您使用相当长的永久链接时,WordPress会为每种类型的内容创建一组规则。这些规则定义了每种类型内容的URL将遵循的模式。

当您收到一个传入请求时,WordPress通过将URL与这些规则匹配来决定请求的内容。如果多个规则匹配,则使用优先级最高的规则。在这种情况下,您的CPT优先于页面。

看到了吗WP_Rewrite class 有关更多信息,请参阅Codex。

EDIT 另请参见parse_request 在源代码中,为请求解析这些规则的代码。

结束

相关推荐

Enable page templates. How?

基本问题,但我想启用页面模板。我有一个启用了页面模板的主题。我切换到了另一个模板,但没有更改模板的选项,即使在创建新页面时也是如此。如何打开此选项?我在抄本和论坛上找到了根,但找不到。