You need to enable JavaScript to run this app. 使用PHP实现仅在归档页显示横幅:代码无报错却全站点展示的问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP实现仅在归档页显示横幅:代码无报错却全站点展示的问题咨询

错误根源

你的条件判断完全没有生效,核心问题是PHP流程控制的语法遗漏:在使用冒号替代大括号写if分支结构时,你没有在判断语句的末尾加上必需的冒号。
PHP的冒号版分支语法固定格式为if(判断条件):,你当前写的<?php if(is_archive()) ?>因为漏了这个冒号,解析器无法识别后续内容属于if的控制范围,会把横幅模块作为独立内容输出到所有页面;再加上很多站点默认关闭了PHP解析错误的前台提示,所以你看不到任何报错,只会看到横幅全页面显示的效果。

修复方案

只需要在if判断行补上缺失的冒号,就能让条件判断正常生效,调整后的完整代码如下:

<header id="masthead" class="site-header navbar-static-top fixed-top <?php echo wp_bootstrap_starter_bg_class(); ?>" role="banner">
</header>

<!-- 补上判断行末尾的冒号,完成合法的if分支结构 -->
<?php if(is_archive()): ?>
<div class="free-shipping-banner">
    <p>
        FREE SHIPPING on all print orders within North America.
    </p>
</div>
<?php endif; ?>

补充说明

is_archive()默认会匹配所有归档类页面,包括分类归档、标签归档、日期归档、作者归档、自定义文章类型归档。如果后续需要排除某类特定归档不展示横幅,只需要在判断条件里追加规则即可,比如不需要在WooCommerce产品归档页展示的话,就可以把判断改成:
<?php if(is_archive() && !is_post_type_archive('product')): ?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 01:15:04