循环如何知道要查看哪个帖子?

时间:2015-10-17 作者:KAS

我想我已经了解了如何创建自己的主题,但有一件事:如何在页面中循环。php知道在我的站点上循环浏览所有页面时要查看哪个页面?如果我加载了我的一个页面(例如联系人表单),那么页面是如何加载的。php知道,当它循环遍历所有页面时,应该只加载一个特定页面?

2 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

打开你的循环page.php 不会循环浏览网站上的所有页面。它循环遍历主查询返回并存储在$wp_query 全局变量,它是所有主要WordPress“页面”的工作方式,包括后期归档页面、类别、标记页面等。对于任何一个“页面”,只有一个页面将位于$wp_query 全局,所以您只能看到一个。

虽然细节可能会变得复杂,但WordPress中页面加载的结果是WP_Query 类很早就被实例化,它解析正在加载的url并计算出要查询的帖子。这些信息被推到wp_query 全局变量,并在此后被大量代码访问(这就是为什么您永远不想手动或通过query_posts()). 这是一个极其复杂的机制,你可以在这里看到:https://core.trac.wordpress.org/browser/tags/4.3.1/src/wp-includes/query.php#L1448

SO网友:Mark Kaplun

@s\\u ha\\u dum答案的简短/简化版本。

wordpress做的最后一件事是运行模板来实际输出HTML。在到达之前,wordpress会对URL进行排序,并根据排序确定要显示的特定内容。这并不是真正的开放式,虽然插件可以扩展循环来做任何奇怪的事情,但这完全取决于URL。

相关推荐

对“Pages”仪表板中的列进行排序概述

我想按“标题”或自定义列(“层次结构”)在“页面”仪表板中按字母顺序排列页面。基本上,所有页面都分配了一个层次代码(1、1.1、1.1.01、1.1.02等)。当我单击“层次”排序按钮时,结果不正确。有人能给我一个提示或给我指出讨论这个问题的资源吗?下面列出了我的代码。// (Works.) Make custom columns \'prod-hierar\' and \'slug\' sortable add_filter( \'manage_edit-page_sortable_column