【问题标题】:Multiple wordpress category IF conditional tags多个wordpress类别IF条件标签
【发布时间】:2014-04-13 11:53:16
【问题描述】:

您好,前几天我发布了一个关于使用条件标签的问题,我设法解决了。

我遇到了另一个障碍,我设法通过说“如果有任何帖子在'博客'类别中回显'[BLOGS]'”来让一个工作,但我正在尝试在博客类别中显示帖子和另一个。我读到使用多个条件标签来使用我拥有的“elseif”,但它似乎没有做任何事情。这是我正在使用的代码:

<h2>
    <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
        <?php if (in_category ('blogs')) { ?>
            <?php _e('[BLOG]'); ?>
        <?php } elseif (in_category ('blogs', 'showstopper-spillings')) { ?>
            <?php _e('[BLOG] Showstopper Spillings:'); ?>
        <?php } ?>
        <?php the_title(); ?>
    </a>
  </h2>

不确定我是否遗漏了任何东西,或者甚至我正在尝试做的事情是可能的。任何帮助或建议将不胜感激。

【问题讨论】:

    标签: php wordpress categories conditional-statements


    【解决方案1】:

    in_category 一次只接受一个类别。因此,您需要使用复合语句来评估多个类别。

    <?php  
    if (in_category ('blogs')) { 
            _e('[BLOG]');
    } elseif (in_category ('other_category')) {
            _e('Other Category:');
    } ?>
    

    other_category 替换为您想要的类别的类别ID 或类别名称或类别标签。

    【讨论】:

    • 好的,非常感谢克里斯托弗,我会这样做,我猜这将适用于三四个类别,而不仅仅是我列出的两个类别?
    【解决方案2】:

    PHP 看起来和 WP 的 PHP 一样好,所以我认为这是调用 WP 函数的问题。您有 in_category ('blogs', 'showstopper-spillings') 但看起来第二个参数是帖子 ID。

    Usage in_category( $category, $_post )

    $类别 (混合)(必需)由 ID(整数)、名称或 slug(字符串)指定的一个或多个类别,或这些类别的数组 默认值:无

    $_post (混合)(可选)帖子(整数 ID 或对象)。默认为循环中的当前帖子或主查询中的帖子。 默认值:无

    假设“showstopper-spillings”只是另一个类别,代码应该是`in_category ('showstopper-spillings')

    编辑:如果你想简单地同时捕捉两个你可以做if(in_category ('blogs') || in_category('showstopper-spillings'))两个管道“||”意思是“或”

    【讨论】:

    • 我现在已经完成了,我使用了 Christopher 提供的更正代码。那是否应该允许我提交这两个类别的帖子以获得此结果 - [BLOGS] Showstopper Spillings:帖子标题
    • Christopher 的代码似乎是您想要的。如果您使用if(in_category ('blogs') || in_category('showstopper-spillings')),您将获得两个类别的帖子链接,但该链接只会显示为“[BLOG]”
    • 是的,这就是我刚刚发现的,那么有没有办法同时显示两者?如果帖子同时属于这两个类别,或者 WP 不能那样工作?对不起所有的问题,对我来说是全新的。这都是一天结束时的学习曲线:)
    • 我已经有一段时间没有研究 WP 了。我现在记得“循环”发生了一些时髦的事情。 (codex.wordpress.org/The_Loop)如果你使用这个:if(in_category ('blogs') || in_category('showstopper-spillings'))你应该得到两者,但你将无法在不同的类别下显示它。
    【解决方案3】:

    你可以很容易地做到这一点,通过使用 php 的双管道进行比较,这会很好..

    例子:

    <?php
     if( in_category('category-1') || in_category('category-2') ){
      //Do Something
     }
    ?>
    

    希望这对其他人有所帮助,因为我知道这是一篇较旧的帖子。

    【讨论】:

      【解决方案4】:

      in_categoryis_category 确实采用这样的类别数组:

      <?php if ( in_category(array('category-1', 'category-2')) ): ?>
        //do something
      <?php endif; ?>
      
      <?php if ( is_category(array('category-1', 'category-2')) ): ?>
        //do something
      <?php endif; ?>
      

      注意:数组能力是2.5版本添加的。

      【讨论】:

        猜你喜欢
        • 2011-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-18
        • 1970-01-01
        • 1970-01-01
        • 2012-12-26
        • 1970-01-01
        相关资源
        最近更新 更多