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

时间:2018-09-14 01:14:03

标签: wordpress wordpress-theming advanced-custom-fields

为自定义分类法和相关的自定义帖子类型构建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(); 
?>         

0 个答案:

没有答案