Php 多个Wordpress在一个页面中循环,生成相同的数据

Php 多个Wordpress在一个页面中循环,生成相同的数据,php,html,wordpress,filter,Php,Html,Wordpress,Filter,我在header.php文件中使用多个循环时遇到问题。问题是所有部分都显示最终循环的结果,而不是它们自己的结果。这是我的密码: <div class="catagory active face"> <?php /*-- Body --*/ $args01 = array('post_type' => 'services','category' => 'face',); $loop01

我在
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>


你知道为什么前两个循环显示第三个循环的结果吗?我缺少什么?

我想你应该移动
wp\u reset\u postdata()至后
endif在所有循环中

尝试此代码



希望您使用自定义分类法作为类别,因此需要使用“分类法”查询。使用下面的代码并根据需要循环

<?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();
?>

请使用下面的代码

<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>


希望能有所帮助。

希望您使用自定义分类法作为类别-我可以知道分类法名称吗?虽然您显示的代码应该可以工作,但如果没有看到您指示的“部分循环”代码总是显示与上面最后一个循环相同的内容(假设您的意思是
$loop03
代码),则无法很好地进行故障排除。请注意,您不需要在上面的代码中为args/循环使用唯一的名称,事实上,如果您重复使用它们,这将节省一些内存(只需将其称为
$args
,每次只需为其分配新的参数数组。只需将其称为
$loop
,每次将其分配给新的
WP\u查询
).嗨@cale_b是的,我会的。最初是这样的,但我认为这是一个错误,所有变量都是相同的。但事实并非如此。您是否可以添加部分中工作不正常的代码,以便能够进行故障排除?我尝试过,但不幸的是结果相同。不过,谢谢你的建议!只有代码的答案不是很有用,特别是当它是这么大的一块代码,并且您没有对代码进行注释时。你改变了什么?为什么它会起作用?尝试了这个,不幸的是仍然有相同的结果(我还没有“服务”的分类设置。但是我使用的是自定义的帖子类型UI插件,我可以添加它吗?当我将其创建为分类时,应该采取什么流程/步骤?我建议使用分类法,因为如果你从插件的“内置分类法”部分选择“类别”,WordPress默认帖子“类别”将被共享n、 您可以按照中的说明轻松添加分类法。请随意更改上述代码中的“分类法名称”。仅代码的答案不是很有用,尤其是当它是一大块代码,并且您没有对代码进行注释时。您更改了什么?为什么它会起作用?我已经在我的末尾进行了测试,然后我将此答案作为工作答案发布提问者wantsHi@raju_eww I使用了您建议的代码,创建了一个名为“服务”的分类法,并将其附加到“服务”类别,但它似乎没有提取任何数据:(如果您将自定义分类命名为
服务
,则它将与您的post\u类型冲突,因此请使用您当前的分类slug不要添加我的自定义分类服务用于测试目的。我创建了分类
服务
,但在我的情况下,
post\u类型
名称不同