Wordpress,查询后全局帖子发生了变化

时间:2014-05-11 14:37:04

标签: php wordpress

我正在开发一个插件。在此插件中,我创建了一个自定义帖子类型' toto'。

在管理页面中,我使用以下帖子ID' 82'编辑自定义帖子元素。 在此页面中,我启动一个查询以检索具有另一个post_type的元素:

$featured_args = array(
'post_type' => 'other_type',
'post_status' => 'publish'    
);

// The Featured Posts query.
$featured = new WP_Query( $featured_args );

// Proceed only if published posts with thumbnails exist
if ( $featured->have_posts() ) {
    while ( $featured->have_posts() ) {
        $featured->the_post();
        if ( has_post_thumbnail( $featured->post->ID ) ) {
            /// do stuff here
        }
    }

// Reset the post data
wp_reset_postdata();
}

这样做全球$ post已更改。它不再是id为82的帖子,而是来自查询的最新post元素。

我认为wp_reset_postdata()函数将允许我检索当前的$ post。我也试过wp_reset_query()而没有改变。 我错过了什么吗?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:4)

wp_reset_postdata()重置主循环。如果您想直接访问$post,请尝试

global $post;
$backup_post = $post;

//do another loop

wp_reset_postdata();

$post = $backup_post;