Wp_Reset_postdata()或wp_Reset_Query()?

时间:2014-05-14 作者:bestprogrammerintheworld

阅读一些关于query_reset_postdataquery_reset_query 让我困惑。例如:

  1. Is there any need to use both wp_reset_postdata and wp_reset_query together?

  2. http://www.poststat.us/properly-reset-wordpress-query/

说明您应该只使用query_reset_postdata() 使用“时”;单独查询;。在示例2中有一条注释:

WP_Query( $args ) = wp_reset_postdata();
以及

query_posts ( $args ) = wp_reset_query();
你真的不应该使用wp_reset_query 因为你不应该使用query\\u posts!?

在WP Codex中,它规定您应该使用wp_reset_query() 自定义循环之后(第一个示例)http://codex.wordpress.org/Function_Reference/wp_reset_query

那么抄本错了吗?

1 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

两者的区别在于

  • wp_reset_query() - 确保主查询已重置为原始主查询wp_reset_postdata() - 确保全球$post 已还原到主查询中的当前帖子source 你会看到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\\u reset\\u query吗?好的,是的,但只有在使用query_posts(). 正如你所指出的should never use query_posts(). 所以如果你不使用query_posts() 那么就没有必要打电话了wp_reset_query() (而不是wp_reset_postdata().

        简而言之,这并不是说你不应该使用wp_reset_query() 而不是wp_reset_postdata(), 这是你永远不需要的!

结束

相关推荐