我正在尝试使用" get_term_by"根据术语名称检索术语ID构建到Wordpress中的函数。但是,此函数仅从我从中获取它们的数组中检索一个项目。但是这个数组中有多个项目。
这是我目前的代码:
$filter_terms = get_term_by( 'name', $widget['select'], 'portfolio-categories');
当我转储它时,这就是$widget['select']
内的内容:
array(2) { [0]=> string(5) "Beard" [1]=> string(3) "Tag" }
所以在这个数组" Beard"和#34;标记"我想要从中获取ID的两个术语,但是,如果我转储$filter_terms
我得到这个:
object(WP_Term)#634 (10) {
["term_id"]=> int(14)
["name"]=> string(5) "Beard"
["slug"]=> string(5) "beard"
["term_group"]=> int(0)
["term_taxonomy_id"]=> int(14)
["taxonomy"]=> string(20) "portfolio-categories"
["description"]=> string(0) ""
["parent"]=> int(0)
["count"]=> int(2)
["filter"]=> string(3) "raw"
}
那么如何从这两个术语中获取上述信息,除了只有一个?
编辑: 感谢有帮助的人在wordpress.stackexchange.com,我现在有了一个有效的解决方案:
$filter_terms = array();
foreach ($widget['select'] as $key => $name) {
$filter_terms[$key] = get_term_by( 'name', $name, 'portfolio-categories');
}
答案 0 :(得分:0)
get_term_by
函数不接受数组作为参数,期望值是字符串,或整数参见:https://codex.wordpress.org/Function_Reference/get_term_by
您需要循环数组并为数组中的每个索引调用get_term_by
函数。