single.php 中的 If 和 Else 用于展示多个类别

问题描述 投票:0回答:1

我试图在 WordPress 中显示 3 个不同类别的 3 种不同布局,但失败了,因为第二个类别输出也显示了第三个类别:

我给出的条件哪里错了?请帮忙。

第 12 行

<?php endif ?>
感觉它不应该在那里,但删除它会出现一个空白页。

<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 else: ?>
            <?php if(in_category('cat2')): ?>
                <div><h1><?php the_title(); ?></h1></div>
                <p>2</p>
            <?php else: ?>
            <?php endif ?>
                <div><h1><?php the_title(); ?></h1></div>
                <p>3</p>
            <?php endif ?>  
            <?php endwhile; else: ?>
            <p>There no posts to show</p>
        <?php endif; ?>
    </div>
</div>

Cat1
的输出是正确的:

<h1>Cat 1 Title</h1>
<p>1</p>

Cat2
的输出不正确并且也显示Cat3:

<h1>Cat 2 Title</h1>
<p>2</p>
<h1>Cat 3 Title</h1>
<p>3</p>

Cat3
的输出是正确的:

<h1>Cat 2 Title</h1>
<p>3</p>
php wordpress wordpress-theming custom-wordpress-pages
1个回答
0
投票

您有一个

else
,后跟一个
endif
。这与
else {}
相同(不执行任何操作)。

我已经更正了原始代码中的缩进,您现在可以明白为什么它同时显示 cat2 和 3 了:

<div class="details">
    <div class="container">
        <?php
            if (have_posts()) {
                while (have_posts()) {
                    the_post();
                    if(in_category('cat1')) {
                        echo "<div><h1>".the_title()."</h1></div>";
                        echo "<p>1</p>";
                    } else {
                        if(in_category('cat2')) {
                            echo "<div><h1>".the_title()."</h1></div>";
                            echo "<p>2</p>";
                        } else {
                        }
                        echo "<div><h1>".the_title()."</h1></div>";
                        echo "<p>3</p>";
                    }
                }
            } else {
                echo "<p>There no posts to show</p>";
            }
    </div>
</div>
© www.soinside.com 2019 - 2024. All rights reserved.