在寻求帮助但失败后,我成功地为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如何解决这个问题。
SO网友:Addzy
我解决了它:
以防任何人在查询具有相同内容的帖子时遇到任何问题term
的Taxonomy
在另一个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(); ?>
我希望这对某些人有所帮助,因为这也很难找到解决方案。