获取条件IF语句的术语父ID

时间:2016-04-18 作者:Adrian

我有以下工作代码来响应术语的名称(分类法称为prodcats) 有一系列的帖子。这在分类法存档模板中taxonomy-prodcats.php

$terms = get_the_terms( $post->ID , \'prodcats\' );
foreach( $terms as $term ) {
    echo \'<div class="categoryblock">\';
    echo \'<h3>\' . $term->name . \'</h3>\';
    echo \'</div>\';
    unset($term);
}
我需要做的是让“categoryblock”div具有不同的背景颜色,这取决于使用的父术语。共有5个父项,ID为3、4、5、6和7。

那么,我如何调整上面的说法,如果这个术语的父项是3,那么echo x else如果术语的父项是4,echo y else如果术语的父项是5,那么echo z等等。。(你明白了)。

我尝试了几件事,包括$parent = $term->parent; echo $parent->id; 但这并没有输出任何东西。

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

虽然这不是专门的WordPress,而是一些通用PHP,但您可以使用以下解决方案:

$terms = get_the_terms( $post->ID , \'prodcats\' );
foreach( $terms as $term ) {
    $classes = \'categoryblock\';

    switch( $term->parent ) {
        case 3:
            $classes .= \' blue\'  // Notice the space between the opening string - important for CSS
          break;
    }

    echo \'<div class="\' . $classes . \'">\';
    echo \'<h3>\' . $term->name . \'</h3>\';
    echo \'</div>\';
    // unset( $term ); // I\'m not sure this works and it would be unnecessary
}
因此,我们使用顶部的PHP开关将类名附加到字符串中。每当$term->parent == 3 PHP将附加blue 到字符串$classes 所以看起来是这样的:categoryblock blue 然后将添加到<div/> 类属性。这是假设你有.blue{color:blue} 在CSS样式表中初始化。

另一方面,没有必要从terms数组中取消设置任何内容,除非稍后要对该数组执行加法操作。PHP Foreach 将从上到下遍历数组一次。

相关推荐

显示作者姓名PHP(自制插件)

我有一个需要帮助的问题,因为我自己找不到解决办法。我接管了一个网站,之前有人在那里创建了一个自制插件。。使用默认插件“Contact Form 7”,用户可以在页面上创建帖子。()https://gyazo.com/c8b20adecacd90fb9bfe72ad2138a980 )关于自行创建的插件“Contact Form 7 extender”,帖子是通过PHP代码在后台生成的(https://gyazo.com/115a6c7c9afafd2970b66fd421ca76a3)其工作原理如下:如果