我有两种分类法:“颜色”和“推荐颜色”都有相同的术语(相同的颜色)。
我想显示分类法“颜色”的所有术语的列表,并按照建议标记一种颜色。因此,使用下面的foreach,我得到了分类法的选定术语“选定的颜色”
<?php
$colours = wp_get_post_terms($post->ID, \'colours\', array("fields" => "all"));
foreach($colours as $colour) {
$colour_class = $colours->slug;
$colour_title = $carcase_single->name;?>
<div class="<?php echo $colour_class ?>" title="<?php echo $colour_title;?>"></div>
<?php }
?>
通过这个foreach,我在“推荐颜色”分类法(推荐颜色)中选择了这个术语:
<?php
$recommended_colours = wp_get_post_terms($post->ID, \'recommended_colours\', array("fields" => "all"));
foreach($recommended_colours as $recommended_colour) {
$recommended_colour_class = $recommended_colour->slug; ?>
<div class="<?php echo $recommended_colour_class ?>" title="<?php echo $colour_title;?>"></div>
<?php } ?>
现在我想加入foreach并用推荐的颜色显示所有选定的颜色。
我“加入”了foreach,但只有我得到了推荐的颜色,而不是所有选定的颜色和推荐的带有以下代码的颜色:
<?php
$colours = wp_get_post_terms($post->ID, \'colours\', array("fields" => "all"));
$recommended_colours = wp_get_post_terms($post->ID, \'recommended_colours\', array("fields" => "all"));
foreach($colours as $colour) {
$colour_class = $colours->slug;
$colour_title = $carcase_single->name; }
foreach($recommended_colours as $recommended_colour) {
$recommended_colour_class = $recommended_colour->slug; }
?>
<div class="<?php echo $colour_class $recommended_colour_class ?>" title="<?php echo $colour_title;?>"></div>
我想获得以下信息:
<div class="<?php echo $colour_class ?>" title="<?php echo $colour_title;?>"></div>
<div class="<?php echo $colour_class $recommended_colour_class ?>" title="<?php echo $colour_title;?>"></div>
<div class="<?php echo $colour_class ?>" title="<?php echo $colour_title;?>"></div>
<div class="<?php echo $colour_class ?>" title="<?php echo $colour_title;?>"></div>
<div class="<?php echo $colour_class ?>" title="<?php echo $colour_title;?>"></div>
谢谢大家!
最合适的回答,由SO网友:Martin Sotirov 整理而成
首先,我将用以下内容提取推荐颜色术语的所有片段:
$recommended_colours = wp_get_post_terms($post->ID, \'recommended_colours\');
$recommended_colour_slugs = array_map(function($colour) {
return $colour->slug;
}, $recommended_colours);
。。。这将为您留下一个$Recommendated\\u colour\\u slugs数组,如下所示
[\'blue\', \'green\']
.
然后,您可以循环使用颜色术语,并使用if-else检查$recommended\\u colour\\u slugs数组中是否存在当前颜色,并相应地设置该项目的css类。
$colours = wp_get_post_terms($post->ID, \'colours\');
foreach($colours as $colour) :
$colour_class = $colour->slug;
$colour_title = $colour->name;
if (in_array($colour->slug, $recommended_colour_slugs)) {
$colour_class .= \' recommended\';
}
?>
<div class="<?php echo $colour_class; ?>" title="<?php echo $colour_title;?>"></div>
<?php endforeach;