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

WordPress single.php多分类布局If/Else逻辑错误排查求助

WordPress single.php分类布局条件判断错误修复

你的代码条件结构逻辑混乱,导致分类2的内容输出后,会继续执行分类3的代码块。具体问题:

  • 当文章属于分类2时,进入第一个else分支,匹配cat2的if后输出分类2的内容,接着第12行的endif关闭了分类2的判断,之后的分类3内容属于第一个else分支的一部分,不管分类2是否匹配都会执行,所以会同时显示分类2和3的布局。
  • 删除第12行的endif后,PHP的if语句结构不闭合,触发语法错误,导致页面空白。

修复方案

使用elseif构建互斥的条件判断,确保每个分类仅匹配对应布局,代码结构更清晰:

<div class="details">
    <div class="container">
        <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
            <?php if(in_category('cat1')): ?> 
                <div><h1><?php the_title(); ?></h1></div>
                <p>1</p>
            <?php elseif(in_category('cat2')): ?>
                <div><h1><?php the_title(); ?></h1></div>
                <p>2</p>
            <?php else: ?>
                <div><h1><?php the_title(); ?></h1></div>
                <p>3</p>
            <?php endif; ?>  
        <?php endwhile; else: ?>
            <p>没有文章可以显示</p>
        <?php endif; ?>
    </div>
</div>

修复后效果

  • 分类1:仅输出分类1的标题和布局内容
  • 分类2:仅输出分类2的标题和布局内容,不会再显示分类3的内容
  • 分类3:仅输出分类3的标题和布局内容(注:你原代码中分类3的输出标题写错为Cat 2 Title,修复后会显示正确的文章标题)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:58:38