Get_term_by只返回数组中的一个项目

时间:2015-12-22 02:26:44

标签: php arrays wordpress taxonomy

我正在尝试使用" 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');
            } 

1 个答案:

答案 0 :(得分:0)

get_term_by函数不接受数组作为参数,期望值是字符串,或整数参见:https://codex.wordpress.org/Function_Reference/get_term_by

您需要循环数组并为数组中的每个索引调用get_term_by函数。