将一个数组中的词条与WP_Term对象数组中的词条匹配,以输出词条名称

时间:2018-07-16 作者:nickpish

我在用WordPress的get_terms 返回WP_Term 对象,该对象包含给定分类法的子术语的term\\u id、name、slug等。我已将此阵列保存到$tax_terms. 我有一个不同的数组-$active_filters—只包含与某些分类术语相匹配的术语的slug;例如,从var_dump 属于$active_filters:

array (size=3)
  0 => string \'term-1\' (length=6)
  1 => string \'term-2\' (length=6)
  2 => string \'term-3\' (length=6)
我想知道有没有办法foreach 将此术语段塞数组与get_terms 并返回name 有匹配的子弹吗?因此,上面的示例将输出“术语1”、“术语2”、“术语3”。我试过使用array_search 但到目前为止,没有任何效果。非常感谢您的帮助。

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

可能array_map ?

这将为您提供一组术语名称,这些名称与$active\\u过滤器中的slug匹配:

$matched_terms = array_map(function($term) use ($active_filters){
    if(in_array($term->slug, $active_filters)){
        return $term->name;
    }
    else{
        return false;
    }

}, $tax_terms);


//remove the empty array elements which came from terms which didn\'t match a slug
$matched_terms = array_filter($matched_terms);

结束