我在header.php
文件中使用多个循环时遇到问题。问题是所有部分都显示最终循环的结果,而不是它们自己的结果。这是我的代码:
<div class="catagory active face">
<?php /*-- Body --*/
$args01 = array('post_type' => 'services','category' => 'face',);
$loop01 = new WP_Query( $args01 );
if ( $loop01->have_posts() ) :
while ( $loop01->have_posts() ) : $loop01->the_post();
echo '<p><a class="text-white" href="'.get_permalink().'">'.get_the_title().'</a></p>';
endwhile; wp_reset_postdata();
endif;
?>
</div>
<div class="catagory hide breast">
<?php /*-- Body --*/
$args02 = array('post_type' => 'services','category' => 'breast',);
$loop02 = new WP_Query( $args02 );
if ( $loop02->have_posts() ) :
while ( $loop02->have_posts() ) : $loop02->the_post();
echo '<p><a class="text-white" href="'.get_permalink().'">'.get_the_title().'</a></p>';
endwhile; wp_reset_postdata();
endif;
?>
</div>
<div class="catagory hide body">
<?php /*-- Body --*/
$args03 = array('post_type' => 'services','category' => 'body',);
$loop03 = new WP_Query( $args03 );
if ( $loop03->have_posts() ) :
while ( $loop03->have_posts() ) : $loop03->the_post();
echo '<p><a class="text-white" href="'.get_permalink().'">'.get_the_title().'</a></p>';
endwhile; wp_reset_postdata();
endif;
?>
</div>
关于为什么前两个循环显示第三个循环结果的任何想法?我在这里想念什么?
答案 0 :(得分:1)
我认为您应该在所有循环中将wp_reset_postdata();
移到之后 endif;
答案 1 :(得分:0)
尝试此代码
<div class="catagory active face">
<?php /*-- Body --*/
$do_not_duplicate = array();
$args01 = array('post_type' => 'services','category' => 'face',);
$loop01 = new WP_Query( $args01 );
if ( $loop01->have_posts() ) :
while ( $loop01->have_posts() ) : $loop01->the_post();
$do_not_duplicate[] = $post->ID;
echo '<p><a class="text-white" href="'.get_permalink().'">'.get_the_title().'</a></p>';
endwhile; wp_reset_postdata();
endif;
?>
</div>
<div class="catagory hide breast">
<?php /*-- Body --*/
$args02 = array('post_type' => 'services','category' => 'breast',);
$loop02 = new WP_Query( $args02 );
if ( $loop02->have_posts() ) :
while ( $loop02->have_posts() ) : $loop02->the_post();
$do_not_duplicate[] = $post->ID;
echo '<p><a class="text-white" href="'.get_permalink().'">'.get_the_title().'</a></p>';
endwhile; wp_reset_postdata();
endif;
?>
</div>
<div class="catagory hide body">
<?php /*-- Body --*/
$args03 = array('post_type' => 'services','category' => 'body',);
$loop03 = new WP_Query( $args03 );
if ( $loop03->have_posts() ) :
while ( $loop03->have_posts() ) : $loop03->the_post();
$do_not_duplicate[] = $post->ID;
echo '<p><a class="text-white" href="'.get_permalink().'">'.get_the_title().'</a></p>';
endwhile; wp_reset_postdata();
endif;
?>
</div>
答案 2 :(得分:0)
希望您使用自定义分类法作为类别,因此您需要使用“分类法”查询。使用下面的代码并根据需要循环。
<?php
$tax01 = array('taxonomy' => 'service_category','terms' =>5); // replace taxonmy name & id here
$args01 = array('post_type' => 'services','tax_query' => array($tax01));
$loop01 = new WP_Query( $args01 );
if ( $loop01->have_posts() ) :
while ( $loop01->have_posts() ) : $loop01->the_post();
echo '<p><a class="text-white" href="'.get_permalink().'">'.get_the_title().'</a></p>';
endwhile;
endif;
wp_reset_query();
?>
答案 3 :(得分:0)
请使用以下代码
<div class="catagory active face">
<?php
$args01 = array('post_type' => 'services',
'tax_query' => array(
array(
'taxonomy' => 'your_taxonomy_name',
'field' => 'slug',
'terms' => 'face'
)));
$loop01 = new WP_Query( $args01 );
if ( $loop01->have_posts() ) :
while ( $loop01->have_posts() ) : $loop01->the_post();
echo '<p><a class="text-white" href="'.get_permalink().'">'.get_the_title().'</a></p>';
endwhile; wp_reset_postdata();
endif; ?>
</div>
<div class="catagory hide breast">
<?php
$args02 = array('post_type' => 'services',
'tax_query' => array(
array(
'taxonomy' => 'your_taxonomy_name',
'field' => 'slug',
'terms' => 'breast'
)));
$loop02 = new WP_Query( $args02 );
if ( $loop02->have_posts() ) :
while ( $loop02->have_posts() ) : $loop02->the_post();
echo '<p><a class="text-white" href="'.get_permalink().'">'.get_the_title().'</a></p>';
endwhile; wp_reset_postdata();
endif; ?>
</div>
<div class="catagory hide body">
<?php
$args03 = array('post_type' => 'services',
'tax_query' => array(
array(
'taxonomy' => 'your_taxonomy_name',
'field' => 'slug',
'terms' => 'body'
)));
$loop03 = new WP_Query( $args03 );
if ( $loop03->have_posts() ) :
while ( $loop03->have_posts() ) : $loop03->the_post();
echo '<p><a class="text-white" href="'.get_permalink().'">'.get_the_title().'</a></p>';
endwhile; wp_reset_postdata();
endif; ?>
</div>
希望这会有所帮助。