我有以下工作代码来响应术语的名称(分类法称为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;
但这并没有输出任何东西。
最合适的回答,由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 将从上到下遍历数组一次。