You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用rewind_posts()按文章类型分组搜索结果时如何显示无结果提示

问题原因

你当前的逻辑只做了全局搜索结果存在的判断,每个post_type对应的标签循环内仅做了内容过滤,没有统计对应类型的结果数量,所以无法识别空结果场景输出提示。

修复后的代码

<?php
if ( have_posts() ) { ?>
  <section class="tabs" id="pages">
    <?php 
    $page_count = 0;
    while( have_posts() ) { the_post(); 
      if ( $post->post_type == 'page' ) { 
        include(locate_template('partials/pages.php', false, false));
        $page_count++;
      }
    }
    if($page_count === 0) {
      echo '<p>No results</p>';
    }
    ?>
  </section>
  <?php rewind_posts(); ?>

  <section class="tabs" id="people">
    <?php 
    $people_count = 0;
    while( have_posts() ) { the_post(); 
      if ( $post->post_type == 'people' ) { 
        include(locate_template('partials/profile.php', false, false));
        $people_count++;
      }
    }
    if($people_count === 0) {
      echo '<p>No results</p>';
    }
    ?>
  </section>
  <?php rewind_posts(); ?>

  <section class="tabs" id="documents">
    <?php 
    $doc_count = 0;
    while( have_posts() ) { the_post(); 
      if ( $post->post_type == 'documents' ) { 
        include(locate_template('partials/document.php', false, false));
        $doc_count++;
      }
    }
    if($doc_count === 0) {
      echo '<p>No results</p>';
    }
    ?>
  </section>
  <?php rewind_posts(); ?>
</div>

可选优化方案

如果站点搜索结果量级较大,多次循环重绕会产生不必要的性能开销,可以提前把搜索结果按post_type分组存入数组,后续直接遍历对应数组即可,不需要重复执行主循环:

<?php
// 仅执行一次主循环完成结果分组
$results_by_type = [];
if(have_posts()) {
  while(have_posts()) {
    the_post();
    $results_by_type[$post->post_type][] = $post;
  }
  rewind_posts();
}
?>

<!-- page标签输出 -->
<section class="tabs" id="pages">
  <?php if(!empty($results_by_type['page'])):
    foreach($results_by_type['page'] as $post) {
      setup_postdata($post);
      include(locate_template('partials/pages.php', false, false));
    }
    wp_reset_postdata();
  else: ?>
    <p>No results</p>
  <?php endif; ?>
</section>

<!-- 其余people、documents标签逻辑和上述一致,直接读取对应数组即可 -->

该写法后续新增post_type分类标签时扩展效率更高。

内容的提问来源于stack exchange,提问作者blackbear333

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:24:01