在自定义分类模板中的WP_Query期间查询(2)ACF发布对象

为自定义分类法和相关的自定义帖子类型构建Wordpress页面模板。在新的WP_Query中, 我需要从(2)个不同的ACF发布对象字段中获取字段; list-staff和list-rep。直到wp_reset_postdata()为止, 代码均按预期方式工作;返回正确数量的结果, 每个帖子中的数据在重置之前都是唯一的。重置后, 每个帖子中的所有数据都相同。代码紧随其后, 我敢肯定还有一个更优雅的解决方案:

< ?php $args = array( 'orderby' => 'title', 'order'=> 'ASC', 'post_type' => 'parade-of-homes', 'parade-category'=> 'parade-homes', 'posts_per_page'=> -1, 'meta_key'=> 'entry_number', 'orderby'=> 'meta_value', 'order'=> 'ASC' ); $listing = new WP_Query( $args ); if ( $listing-> have_posts() ) : while ( $listing-> have_posts() ) : $listing-> the_post(); ?> < ?php the_field('list_number'); ?> < ?php $staff = get_field('list_staff'); $rep = get_field('list_rep'); if( $staff ): // override $post global $post; $post = $staff; setup_postdata( $post ); ?> < ?php the_permalink(); ?> < ?php the_title(); ?> < ?php endif; if( $rep ): // override $post $post = $rep; setup_postdata( $rep ); ?> < ?php the_field('mkt_co'); ?> < ?php the_field('mkt_tel'); ?> < ?php endif; wp_reset_postdata(); ?> < ?php the_field('list_address') ?> < ?php endwhile; endif; wp_reset_query(); ?>

#1【在自定义分类模板中的WP_Query期间查询(2)ACF发布对象】想通了这一点。 setup_postdata()是此应用程序完全错误的方向。正确的记录在ACF页面上, 用于” 显示多个发布对象的数据” 。如文章所述:” 使用此方法, $ post对象永远不会更改, 因此所有函数都需要有问题的Post ID的第二个参数。” 在这里阅读更多信息; https://www.advancedcustomfields.com/resources/post-object/。我的工作代码如下:
< ?php $args = array( 'orderby' => 'title', 'order'=> 'ASC', 'post_type' => 'parade-of-homes', 'parade-category'=> 'parade-homes', 'posts_per_page'=> -1, 'meta_key'=> 'entry_number', 'orderby'=> 'meta_value', 'order'=> 'ASC' ); $listing = new WP_Query( $args ); if ( $listing-> have_posts() ) : while ( $listing-> have_posts() ) : $listing-> the_post(); ?> < ?php the_field('list_number'); $post_object = get_field('list_staff'); if( $post_object ): ?> < a href="http://www.srcmini.com/< ?php echo get_permalink($post_object-> ID); ?>"> < ?php echo get_the_title($post_object-> ID); ?> < ?php endif; ?> < ?php $post_object = get_field('list_rep'); if( $post_object ): ?> < p> < ?php the_field('mkt_co', $post_object-> ID); ?> < /span> < /p> < a href="http://www.srcmini.com/tel:< ?php the_field('mkt_tel', $post_object-> ID); ?> "> < ?php the_field('mkt_tel', $post_object-> ID); ?> < /a> < ?php endif; ?> < ?php the_field('list_address') ?> < ?php endwhile; endif; wp_reset_query(); ?>

    推荐阅读