如何确定某个术语是否在数组中?

时间:2012-02-17 作者:TJ Sherrill

我目前正在运行下面的wordpress php,它正在为我创建一个列表。

$term = get_term_by( \'id\', $ptc, $taxonomy );
echo \'<li><a href="\'. home_url() .\'/taxon/\'. $pt->slug .\'/\' .  $term->slug . \'">\' . $term->name . \'</a> </li>\';
但是,我需要它来检查$term是否在\\u array$product\\u terms中,因此我尝试了:

$term = get_term_by( \'id\', $ptc, $taxonomy );
                if(in_array($term, $product_terms)){ 
                    echo \'<li class="current-cat"><a href="\'. home_url() .\'/taxon/\'. $pt->slug .\'/\' .  $term->slug . \'">\' . $term->name . \'</a> </li>\';
                } else {
                    echo \'<li><a href="\'. home_url() .\'/taxon/\'. $pt->slug .\'/\' .  $term->slug . \'">\' . $term->name . \'</a> </li>\';
                }
但对于额外的类,它仍然不返回任何值,即使我知道其中一个在数组中。。。有什么办法可以让这一切顺利进行吗?

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

这取决于$product_terms 大堆

如果有字符串,比如术语slug,那么可能需要检查$term->slug 存在。

如果有对象,请确保数组已建立索引,而不是关联。对于关联阵列,请使用array_key_exists() 相反

结束

相关推荐

WP_SET_OBJECT_TERMS在循环内不工作

我有以下代码$genres= array(\'action\', \'comedy\', \'horror\'); foreach($genres as $genre){ $ret = wp_set_object_terms( $postId, $genre, \'genres\'); } 但这段代码只将恐怖视为一种类型。当我也检查DB时,我没有动作和喜剧的记录。我如何将这三者与我的流派联系起来?提前谢谢。