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

PHP搜索结果逻辑问题:elseif分支无法触发无结果红色样式

WordPress搜索结果标题样式修复方案

问题根源

原代码的条件判断逻辑存在两处错误:

  1. 只要URL中存在s参数(哪怕搜索内容为空或无结果),第一个if (isset($_GET['s']))就会触发,导致elseif分支永远无法执行
  2. isset($_GET['s']) == null的写法完全错误——isset()返回布尔值,和null比较的结果永远是false

修正后的代码

<?php 
// 有搜索词且存在匹配结果
if ( isset( $_GET['s'] ) && !empty( $_GET['s'] ) && $wp_query->found_posts > 0 ) : ?>
    <h2 class="black">
    <?php
    echo sprintf( __( '%s Search Results for ', 'html5blank' ), $wp_query->found_posts );
    echo get_search_query();
    ?>
    </h2>
<?php 
// 有搜索词但无匹配结果
elseif ( isset( $_GET['s'] ) && !empty( $_GET['s'] ) && $wp_query->found_posts == 0 ) : ?>
    <h2 class="red">
    <?php
    echo sprintf( __( '%s Search Results for ', 'html5blank' ), $wp_query->found_posts );
    echo get_search_query();
    ?>
    </h2>
<?php 
// 空搜索(无s参数或搜索词为空)
else : ?>
    <h2 class="empty">Search <?php echo get_theme_mod( 'theme_options_name', '' ); ?></h2>
<?php endif ?>

逻辑说明

  • 黑色标题:当存在非空的搜索词,且查询到匹配的文章时触发
  • 红色标题:当存在非空的搜索词,但未查询到任何匹配文章时触发
  • 空搜索标题:当URL中没有s参数,或搜索词为空时触发

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:40:26