WordPress中wp_reset_postdata()和wp_reset_query()的差别
  • 3年前
  • WordPress中wp_reset_postdata()和wp_reset_query()的差别520
  • 今天折腾一个问题的时候,突然想到了标题中的问题,虽然一直在使用官方的模板,但是上面两个函数都是见过的,但是忘记是在什么情况下使用的,所以也没有去细究他们之间的差别,今天算是有机会了解一下了。

    首先我们还是看看来自官方针对两个函数的介绍吧。 [wp url="https://developer.wordpress.org/reference/functions/wp_reset_query/" unique_number="wp_5ad02180a5ff414a9263f09e5f0e1384"] [wp url="https://developer.wordpress.org/reference/functions/wp_reset_postdata/" unique_number="wp_eadfbf36568b4e82bacf3eaab91a4541"]

    看了官方的介绍后,你可能还是不太明白之间的差别,说实话,反正我是不明白的,不过经过谷歌了解之后,大致了解了相关内容,简单的说就是下面的意思

    什么时候用wp_reset_query()

    什么时候用wp_reset_postdata()函数,从上面的函数介绍可以看出,我们只有在使用query_posts()函数的时候才需要用到wp_reset_postdata(),但是我们需要了解到的就是网络上面很多地方都不推荐使用query_posts()进行文章数据查询,具体可以去这篇文章: https://wordpress.stackexchange.com/questions/155956/some-doubts-about-how-the-main-query-and-the-custom-query-works-in-this-custom-t

    所以根据上面的内容显示简单的可以描述为,如果你使用了wp_reset_query函数的话,要么就是代码错误,要么就需要重新考虑代码结构编写了。

    什么时候用wp_reset_postdata()

    根据函数描述,主要适用于主循环或者多个循环,我的个人理解就是当你使用一个循环的时候,其中所有的数据指向是针对第一个的,如果这个时候不执行该函数的话,再次使用wp_query查询,则指向依然是第一个循环内的对象,我个人是这么理解的,如果错误,欢迎指正。

    总结

    不管怎么样,你可以不懂上面的内容,但是你可以看看下面的内容: [list title="" type="" unique_number="list_caa3c02af9fc40789b3805133cbd777c"] wp_reset_postdata():在每次自定义WP_Query()后立即执行。 wp_reset_query():在每次使用query_posts()循环后立即执行。 [/list]

    但是不推荐使用query_posts(),所以你可以通过检查wp_reset_query()函数来确定你的代码是否正确使用。

  • 联系我们
  • 有任何疑问欢迎联系我们
  • WP新手学园
  • WordPress中wp_reset_postdata()和wp_reset_query()的差别
  • 邮箱:2830776172#qq.com(#换成@)
  • 回复时间:9:00-19:00
  • 如果提问.请图文并茂,详细描述问题
  • WordPress中wp_reset_postdata()和wp_reset_query()的差别
  • 微信号:wpxsxy_official
  • 仅支持付费解决问题
  • *并非所有问题都会被回复
  • WordPress中wp_reset_postdata()和wp_reset_query()的差别
  • QQ:2830776172
  • 回复时间:9:00-19:00
  • QQ仅支持付费提问,时间有限,尽情谅解
  • WordPress中wp_reset_postdata()和wp_reset_query()的差别
  • QQ群:198768181
  • 有问题可以进去提问,寻求群友帮助
  • *并非所有问题都会被回复
  • WordPress中wp_reset_postdata()和wp_reset_query()的差别
  • 咸鱼:WP新手学园
  • 如果对于直接交易不放心,可以走闲鱼
  • *咸鱼价格不作为最终交易价格
  • 备案号:鄂ICP备2021011647号-1