这也许是一个太宽泛的问题,无法很好地回答。这个$post
global可以以各种方式使用。是否应使用取决于每种情况。
然而,据我所知main intended purpose 的$post
全局是它在主题模板文件中的使用。
当您使用the_title()
或the_content()
或the_author()
WordPress可以在$post
全球的通常,在处理模板文件时,您总是希望使用这些模板函数,如get_the_ID()
, 而不是访问$post->ID
直接地
所以如果你想了解$post
global better,你应该了解如何The Loop 在WordPress中工作,尤其是在模板文件中。循环运行时the_post()
, 它正在使用当前项目设置全局。
在模板文件中,通常会对自动运行的查询循环进行迭代。例如,当您访问单个页面时,WordPress知道要对该页面运行查询并加载page.php
样板
如果要检索主循环之外的额外帖子,例如functions.php
, 你可以自己经营WP_Query, 启动循环,然后使用模板函数。仅访问$post
如果您无法通过现有功能访问所需信息,请直接全局访问。
当你完成了自己的循环WP_Query
, 你会发现$post
global现在卡在自定义查询上。因此,例如,在我们的单页模板上,在自定义循环之后,我们可能不再在中设置当前页$post
. 您可以还原$post
全球至其前状态wp_reset_query. 这是absolutely critical 或者你可以破坏其他插件或主题$post
全球的