使用get_terms()时“试图获取非对象的属性'分类法'”

时间:2019-06-22 08:09:40

标签: wordpress

我使用以下代码获得了特定分类法(GENRES)的条款列表:

     $categories = get_terms('genre', 'orderby=name&hide_empty=0');
     if($categories){
         echo '<select>';
         foreach ($categories as $cat){
         echo "<option value='{$cat->term_id}'>{$cat->name}</option>";
     }
     echo '</select>';
 }

该代码有效,但是我还想获得分类法(GENRES)的标题,因此我使用了print_r($categories);并得到了以下输出:

Array ( 
    [0] => WP_Term Object ( 

        [term_id] => 33 
        [name] => Action 
        [slug] => action 
        [term_group] => 0 
        [term_taxonomy_id] => 33 
        [taxonomy] => genre 
        [description] => 
        [parent] => 0 
        [count] => 1 
        [filter] => raw 
    ) 
    [1] => WP_Term Object ( 
        [term_id] => 34 
        [name] => Comedy 
        [slug] => comedy 
        [term_group] => 0 
        [term_taxonomy_id] => 34 
        [taxonomy] => genre 
        [description] => 
        [parent] => 0 
        [count] => 2 
        [filter] => raw 
    ) 
)

现在我使用print_r($categories->taxonomy);来获得标题,但是我得到了“试图获取非对象的属性'分类法'”。为什么会发生此错误,以及如何使用我的实现获取分类法的标题?

1 个答案:

答案 0 :(得分:1)

函数get_terms()返回一个对象数组,而不是单个对象。

因此,只需使用$categories[0]->taxonomy,您将获得输出“体裁”。