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


ACF Post Objects: Data from two seperate post objects in one wp_query

我使用高级自定义字段,我有一个自定义的帖子类型,其中有两个帖子对象字段,这也是自定义的帖子类型。我试图从一个wp_query内的两个相关的帖子对象获取数据。从第一个post对象获取数据工作正常,但对于第二个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(); 

我不确定这是否是答案,但是使用wp_reset_postdata()循环只会导致问题。我认为正在发生的事情是,在成功找到第一个对象之后,你的程序将主查询重置回开始,这样循环就会返回并再次做同样的事情。你确定你不是在制造无限循环吗?

如果您将wp_reset_postdata()或wp_reset_query()放在"endwhile;"语句之后,可能会解决问题。抱歉,我没有时间在你的WP环境中亲自尝试。好运!