无法通过wp_Reset_postdata()重置辅助查询

时间:2018-10-07 作者:Rafiq

在custom post meta中,我执行了一个自定义查询来获取自定义meta,但当我尝试返回到主$post查询时,它会打印第二个循环。其中是我的自定义查询,我已通过wp\\u reset\\u postdata()将其重置。但没有结果。

                            $custom_fields  = get_posts( array(    \'post_type\'      => \'custom_field\',
                                \'posts_per_page\' => -1,
                                \'post_status\'    => \'publish\',
                                \'meta_key\'       => \'associate\',
                                \'meta_value\'     => \'form\'
                            ) );

                                foreach ($custom_fields as $post) {
                                    setup_postdata($post);
                                    var_dump(get_the_ID());
                                }
                                wp_reset_postdata();
                                wp_reset_query();

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

wp_reset_query 用于循环,因为它重置全局$wp_query 对象get_posts, 另一方面,只返回一个要用ie迭代的数组。foreach. setup_postdatanot 填充$wp_query 对象:https://codex.wordpress.org/Function_Reference/setup_postdata.

对于自定义查询,您可以使用WP_Query 类,或者您可以使用标准PHP函数重置posts数组,如reset.

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

结束

相关推荐

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

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