web-dev-qa-db-ja.com

Get_term_byは配列から項目を1つだけ返します

Wordpressに組み込まれている "get_term_by"関数を使用して、用語名に基づいて用語IDを取得しようとしています。ただし、この関数は、取得元の配列から1つの項目のみを取得します。しかし、この配列には複数の項目があります。

これは私の現在のコードです:

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

これをダンプすると、これが$widget['select']の内側にあります。array(2) { [0]=> string(5) "Beard" [1]=> string(3) "Tag" }

そのため、この配列では、 "Beard"と "Tag"がIDを取得する2つの用語になりますが、$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" 
}

それでは、どのように私は1つだけからのものを除いて、両方の用語から上記の情報を得るのですか?

3
Jessevdb

これを試して..

$filter_terms = array();
foreach ($widget['select'] as $key => $name) {
    $filter_terms[$key] = get_term_by( 'name', $name, 'portfolio-categories');
}
2
Reigel