假设我在Wordpress后端创建了一个称为页面(pages-new page)的页面。我在上面放置了一些任意的页面元素(例如标题、文本、一些图像、一个小部件或两个不同类别的显示帖子)。我没有为它指定特定的模板,因此使用(无论什么)主题的默认模板。我发布了那个页面,现在有人点击了它。
Wordpress现在的数据和控制流程是什么?
它是否在加载页面之前/时执行post查询,并最终使用一些过滤器(哪些过滤器)?
假设我在Wordpress后端创建了一个称为页面(pages-new page)的页面。我在上面放置了一些任意的页面元素(例如标题、文本、一些图像、一个小部件或两个不同类别的显示帖子)。我没有为它指定特定的模板,因此使用(无论什么)主题的默认模板。我发布了那个页面,现在有人点击了它。
Wordpress现在的数据和控制流程是什么?
它是否在加载页面之前/时执行post查询,并最终使用一些过滤器(哪些过滤器)?
是的,是的。页面只是一种帖子。
如果你来,比如说,https://test.test/sample-page/
, 然后发生以下情况:
WordPress根据其存储的重写规则检查URLhttps://test.test/sample-page/ 将匹配(.?.+?)(?:/([0-9]+))?/?$
, 规则映射到的index.php?pagename=$matches[1]&page=$matches[2]
.WP_Query, 使用pagename
参数设置为pagename
. 我们的URL不包含页码,所以不管默认值是什么is_page, is_singular
等。查询的属性。is_main_query
对于基于URL参数的查询也是如此Template Hierarchy.还有很多,但这是基本概述。在这个过程中会触发大量的操作和过滤器挂钩,所以我不能在这里列出它们,但是WP_Query
相关挂钩,如pre_get_posts
查看页面时执行运行。