ACF Post Objects:来自一个wp_query中两个单独的post对象的数据

时间:2014-03-26 18:32:19

标签: php wordpress advanced-custom-fields

我正在使用Advaced自定义字段,我有一个自定义帖子类型,它有两个帖子对象字段,也是自定义帖子类型。我正在尝试从一个wp_query中的两个相关post对象获取Data。从第一个post对象获取数据工作正常,但对于第二个,所有值都为NULL。分离wp_queries是一个获得正确值的解决方案,但我想将所有数据保存在特定的数组结构中,因此它必须全部在同一个循环中。在此先感谢您的帮助!

<?php if( $the_query->have_posts() ): ?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); 

$post_object = get_field('buehne');

        if( $post_object ): 

            // override $post
            $post = $post_object;
            setup_postdata( $post ); 
            $buehne_titel = get_the_title(); //This is saved correctly

            wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly 
        endif; 

$post_object = get_field('band');

        if( $post_object ): 

            // override $post
            $post = $post_object;
            setup_postdata( $post ); 
            $band_titel = get_the_title(); //This is NULL
            $band_genre = get_field('genre'); //This is NULL
            $band_style = get_field('style'); //This is NULL

            wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly 
        endif; 
endwhile; endif; wp_reset_query(); 

1 个答案:

答案 0 :(得分:0)

我不确定这是否是答案,但在中使用 wp_reset_postdata() 循环只会导致问题。我认为正在发生的是,在成功找到第一个对象之后,程序会将主查询重置回到开头,这样循环就会返回并再次执行相同的操作。你确定你没有创建无限循环吗?

如果在&#34; endwhile之后放置wp_reset_postdata()或wp_reset_query();&#34;声明,可能会解决问题。抱歉,我没有时间亲自尝试WP环境。祝好运!