如果帖子有两个或更多类别,则使用回显显示

时间:2017-08-06 作者:DrLiTRosS

我不是php方面的专家,wordpress方面的专家更少。我想知道他们是不是太好了,我有错。我解释说,我的问题是,如果有这两个类别(或更多),我想在帖子中显示带有echo的div。我正在附上代码。非常感谢,问候!

<?php 
        $bflower = "This is a A";
        $bmammal = "This is a B";
        $cflower = "This is a C";
        $cmammal = "This is a D";
        if(has_category(array(\'chicken\', \'mammal\'))){
            echo $cmammal; }
        elseif (has_category(array(\'jasmin\', \'rose\'))) {
            echo $cplant; }
        elseif (has_category(array(\'aloe vera\', \'jeran\'))) {
            echo $bplant; }
        elseif (has_category(array(\'rabbit\', \'cow\'))) {
            echo $banimal; }
        else
            echo "No";
?>

1 个回复
最合适的回答,由SO网友:CK MacLeod 整理而成

要回答您的问题,如果放在循环中,通常是在,while ( have_posts() ) : the_post(); 在一个单一的。php文件-代码的工作方式如下:

has_category( array( \'x\', \'y\' ) ) 如果帖子在x或y中,或两者都在,则无论它是否在任何其他类别中(假设主查询未修改,且没有其他条件),都将满足条件。

在你的例子中,如果帖子同时出现在“jeran”和“cow”中,那么$bplant 会得到回应,但不会$banimal. 我想你可能已经明白为什么了。

如果帖子必须both 在这两个类别中,您必须相应地计算出逻辑-例如。,if ( has_category( \'x\' ) && has_category( \'y\' ) ), 等

可以想象,您也可能会在“单帖页面”的独特方法中遇到问题

结束

相关推荐

Pre_Get_Posts-编辑查询,Tax_Query

我试图根据用户输入的内容过滤结果。function custom_archive() { if ( is_post_type_archive( \'profiles\' ) ) { // if we are on a profiles archive page, edit the query according to the posted data. $data = $_POST[\'networks\'];