我使用起来很混乱$post
全局变量。是使用内环还是外环?在内部和外部循环中使用它的优势是什么?
在哪里使用$POST全局变量?
这个$post
全局由设置$wp_query->the_post()
. 像$post
是由主查询设置的,并且模板设置在全局变量范围内,它在整个模板中都可用,因此无需显式调用$post
当您在指定的模板中作为WP_Post
可以在任何位置访问对象。您可以访问WP_Post
只需直接调用对象,例如$post->ID
检索页面模板上的页面ID
当您需要访问模板之外的post数据时,例如,在函数或小部件中,您需要调用$post
global以使post数据可用。
在循环中,您具有以下功能:
the_ID()
或get_the_ID()
那个回报$post->ID
the_title()
或get_the_title()
那个回报$post->post_title
the_content()
或get_the_content()
那个回报$post->post_content
但是他们会为你正在查看的帖子应用过滤器和短代码。有关这些功能如何工作的更多详细信息,请访问WordPress Code Reference
在一个循环中,您应该ALWAYS 使用为您创建的函数。他们有理由。正如我之前所说:它们应用过滤器并解析短代码。您还应该阅读Global Variable WordPress codex中的文章。
在我看来,你应该只使用$post
只有当你没有其他选择的时候。例如:出于某种原因,您需要帖子的未过滤内容
在内部The Loop 上述函数及其对应函数返回循环中当前职位的信息。如果您在类别/归档页面上,请使用$post
外循环将为您提供最后$post
在循环中(如果在之后使用)或在初始化值之前没有发生任何查询。
NOTE 这是一个全局变量,在The Loop 如果您正在使用它/或插件像我以前一样使用它(if ($pageposts) : global $post; foreach ($pageposts as $post) : setup_postdata($post); ... endforeach; endif;
) 由于其描述和预期用途,它将再次更改:
/**
* Set up global post data.
*
* @since 1.5.0
*
* @param object $post Post data.
* @uses do_action_ref_array() Calls \'the_post\'
* @return bool True when finished.
*/
我用过setup_postdata($post)
为了使用$posts
在我正在建造的旋转木马中设计功能,该旋转木马选择了属于custom post types
基于post meta information
, 当前日期等。。我的建议是,如果您是WordPress新手,请坚持使用functions
实施对象you. 抽象化有它的好处。它使事物更容易找到、记住和使用。