query_reset_postdata
和query_reset_query
的一些信息会使我感到困惑。例如:是否需要同时使用wp_reset_postdata和wp_reset_query?
http://www.poststat .us / properly-reset-wordpress-query /
上面指出,在使用“单独的查询”时,只应使用
query_reset_postdata()
。在example2中,有一个评论:
WP_Query( $args ) = wp_reset_postdata();
和
query_posts ( $args ) = wp_reset_query();
实际上,您永远不应该使用
wp_reset_query
,因为您不应该使用query_posts !? 在WP Codex中它指出您应该在自定义循环后使用
wp_reset_query()
(第一个示例)http://codex.wordpress.org/Function_Reference/wp_reset_query 那么编解码器是否错误?
#1 楼
两者之间的区别在于wp_reset_query()
-确保将主查询重置为原始主查询wp_reset_postdata()
-确保全局$post
已恢复到主查询中的当前帖子。确实,查看源代码,您会看到
wp_reset_query()
调用wp_reset_postdata()
。两者之间的唯一区别是以下行:$GLOBALS['wp_query'] = $GLOBALS['wp_the_query'];
(在
wp_reset_query()
中)。因此,仅当这两个全局变量不同时才需要wp_reset_query()
,并且只有在已经在某个地方使用过query_posts()
时才会发生。我什么时候应该使用它们?
简单地说:
wp_reset_postdata()
-每次自定义WP_Query()
后wp_reset_query()
-每次使用query_posts()
循环后我应该使用wp_reset_query
好吧,是的,但是仅在使用
query_posts()
之后才需要。正如您所指出的,永远不要使用query_posts()
。因此,如果您从未使用过query_posts()
,那么就不必调用wp_reset_query()
(而不是wp_reset_postdata()
。总之,这不是说您不应该使用
wp_reset_query()
而不是wp_reset_postdata()
,这是您不应该使用永远不需要!
评论
所以基本上您是在说:仅使用wp_reset_postdata(),而编解码器的示例很差? (如果您想做的正确)
–世界上最好的程序员
2014年5月14日7:40
该法典可能会更改,因此我将避免对其做出绝对声明,而这可能会变得不正确。它有一个示例WP_Query()循环,该循环使用wp_reset_query(),而不必要地如此。它可以改用wp_reset_postdata(),但不会造成任何伤害。它还有一个query_posts()示例,该示例必须且必须使用wp_reset_query()。如法典中所述,尽管这是一个不好的示例,并且在不建议使用query_posts()的意义上“不建议”。
–斯蒂芬·哈里斯(Stephen Harris)
14年5月14日在8:08