正在尝试获取非对象的属性

时间:2020-04-04 作者:ali

    function im_check_term($name,$tax){
        $term =  get_term_by("name", $name,$tax);
        return !is_wp_error($term) ? $term->term_id : false;
    }
注意:正在尝试在/home/pcodecom/demo中获取非对象的属性。P30代码。com/multimedia-2/wp-content/plugins/imdb/imdb。php第11行

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

如果你看the documentation 对于get_term_by(), 您将看到:

如果$taxonomy 不存在或$term 找不到。

您需要在代码中通过检查$term. 您还将从文档中注意到get_term_by() 是否返回aWP_Error, 所以is_wp_error() 没有用。这就是您需要的:

$term = get_term_by( \'name\', $name, $tax );

return $term ? $term->term_id : false;
您看到的具体错误是,如果$termfalse 然后$term->term_id 是无效代码。

SO网友:fuxia

get_term_by() 可能返回布尔值false. 所以简单的检查WP_Error 这还不够。使用instanceof 而不是操作员,并测试WP_Term 对象:

function im_check_term($name,$tax){
    $term =  get_term_by("name", $name,$tax);
    return ( $term instanceof WP_Term ) ? $term->term_id : false;
}

相关推荐

Loop through array of pages

我正在尝试递归地获取页面的所有子级(无限深度),我正在使用下面的函数,from this solution:function get_all_subpages($page, $args = \'\', $output = OBJECT) { if (! is_numeric($page)) $page = 0; $default_args = array( \'post_type\' => \'page\',&