Get term by возвращает только один элемент из массива


Я пытаюсь восстановить идентификатор термина на основе имени термина, используя функцию "get_term_by", встроенную в Wordpress. Однако эта функция извлекает только один элемент из массива, из которого я их получаю. Но в этом массиве есть несколько элементов.

Это мой текущий код:

$filter_terms = get_term_by( 'name', $widget['select'], 'portfolio-categories');

Это то, что находится внутри $widget['select'], когда я сбрасываю его: array(2) { [0]=> string(5) "Beard" [1]=> string(3) "Tag" }

Таким образом, в этом массиве "Борода" и "Тег" - это два термина, из которых я хочу получить идентификатор, однако, если я дамп $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" 
}

Итак, как мне получить вышеуказанную информацию из обоих терминов, за исключением только одного?

Author: Pieter Goosen, 2015-12-22

1 answers

Попробуйте это..

$filter_terms = array();
foreach ($widget['select'] as $key => $name) {
    $filter_terms[$key] = get_term_by( 'name', $name, 'portfolio-categories');
}
 2
Author: Reigel, 2015-12-22 02:38:56