为什么要使用wp_Reset_postdata()?

时间:2018-08-03 作者:Alt C

我无法理解wp\\u reset\\u postdata的用法。如果我不使用它,会出现什么问题?

https://codex.wordpress.org/Function_Reference/wp_reset_postdata

在文档中,什么是主查询和辅助查询?

谢谢

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

WordPress使用全局$post 变量这样,您就不必将post或post\\u ID作为函数的参数传递。所以你可以打电话the_title() WP知道应该显示哪个标题。

如果站点上只有一个循环,则此行为可以正常工作。但是如果您创建自己的自定义循环并对其进行迭代,那么您可以修改全局$post 变量

让我们看一些示例。假设这是单身。“新闻01”文章的php:

    ...
    while ( have_posts() ) : the_post();
?>
    <h1><?php the_title(); // it will show News 01 ?></h1>
    <?php the_content(); // it will show its content ?>

    <?php
        $related = new WP_Query( ... );
        while ( $related->have_posts() ) : $related->the_post();
    ?>
        <article>
            <h2><?php the_title(); // it will show other title ?></h2>
        </article>
    <?php endwhile; ?>

    <?php the_category(); // what will that show? categories for which post? ?>
在最后一行,它将显示最后一个相关职位的类别。为什么?因为这是一个全球性的帖子$post 变量设置为。

但如果你打电话wp_reset_postdata(); 之后endwhile, 然后设置全局$post 从global返回岗位$wp_query 对象,这样一切都会再次正常工作。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post