尝试获取WordPress面包屑中非对象的属性

时间:2018-06-25 作者:user3309614

我的自定义面包屑中有一个错误:注意:试图获取非对象的属性。

代码如下:

    $taxonomy_exists = taxonomy_exists($custom_taxonomy);
    if(empty($last_category) && !empty($custom_taxonomy) && $taxonomy_exists) {

        $taxonomy_terms = get_the_terms( $post, $custom_taxonomy );
        $cat_id = $taxonomy_terms[0]->term_id; // ERROR LINE
        $cat_nicename = $taxonomy_terms[0]->slug; // ERROR LINE
        $cat_link = get_term_link($taxonomy_terms[0]->term_id, $custom_taxonomy); // ERROR LINE
        $cat_name = $taxonomy_terms[0]->name;

    }
我怎样才能解决这个问题?

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

你需要检查一下get_the_terms() 实际上是在归还任何东西。如果一篇文章在该分类法中没有术语,那么$taxonomy_terms 实际上没有任何条款。如果$taxonomy_terms 那么是空的$taxonomy_terms[0] 实际上不是一个术语对象,所以尝试访问它的属性(->term_id) 将引发错误:

$taxonomy_exists = taxonomy_exists($custom_taxonomy);
if(empty($last_category) && !empty($custom_taxonomy) && $taxonomy_exists) {

    $taxonomy_terms = get_the_terms( $post, $custom_taxonomy );

    if ( ! empty( $taxonomy_terms ) ) {
        $cat_id = $taxonomy_terms[0]->term_id; // ERROR LINE
        $cat_nicename = $taxonomy_terms[0]->slug; // ERROR LINE
        $cat_link = get_term_link($taxonomy_terms[0]->term_id, $custom_taxonomy); // ERROR LINE
        $cat_name = $taxonomy_terms[0]->name;
    }
}

结束

相关推荐

当footer.php调用另一个文件时,我如何修改页脚?

我试图修改阿瑟姆的塔龙主题的页脚。我正在使用一个正常工作的儿童主题。我如何修改页脚时,页脚。php调用位于函数页脚中的函数。php?在页脚中。php,我有这个,我可以在子主题中修改它。 <footer id=\"colophon\" class=\"site-footer\" role=\"contentinfo\"> <div class=\"container\"> <div class=\"row\">