查询拉取同一帖子两次

时间:2015-08-06 作者:Addzy

在寻求帮助但失败后,我成功地为Wordpress编写了一个查询,该查询完全按照它的预期执行,但它却两次完成了它的预期。我盯着标记看了又看,我不明白它为什么这么做。以下是查询:

<?php 
$the_query = new WP_Query( array(
    \'post_type\' => \'product\',
    \'tax_query\' => array(
        \'taxonomy\' => \'supplier-tax\',
    ),
) );

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

<?php 
    $terms = get_the_terms( $post->ID, \'supplier-tax\');
    foreach ( $terms as $term ) {
        $termID[] = $term->term_id;
    } 

    $my_query = new WP_Query( array(
        \'post_type\' => \'supplier\',
        \'tax_query\' => array(
            \'field\' => \'slug\',
            \'terms\' => \'$termID\',
        ),
    ) ); ?>

    <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
        <p class="supplier">Supplied by <strong><?php the_title(); ?></strong></p>
        <img src="<?php the_field(\'logo\'); ?>">
    <?php endwhile; ?>
    <?php wp_reset_query(); ?>

<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
如果有人能帮我,或者指出我哪里出了错,以便我能从中吸取教训,我会非常感激。

有人告诉我,这是因为循环运行了两次,但我不知道tpo如何解决这个问题。

1 个回复
SO网友:Addzy

我解决了它:

以防任何人在查询具有相同内容的帖子时遇到任何问题termTaxonomy 在另一个Post Type. 我会把我的答案贴在下面,因为我终于自己解决了。

<?php 

$terms = get_the_terms( $post->ID, \'supplier-tax\');
foreach ( $terms as $term ) {
    $termID[] = $term->term_id;
}

$the_query = new WP_Query( array(
 \'post_type\' => \'supplier\',
 \'tax_query\' => array(
     array(        
        \'taxonomy\' => \'supplier-tax\',
        \'terms\' => $termID,
      )
    ),
) );

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

   <p class="supplier">Supplied by <strong><?php the_title(); ?></strong></p>
   <img src="<?php the_field(\'logo\'); ?>">

<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
我希望这对某些人有所帮助,因为这也很难找到解决方案。

结束