你需要检查一下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;
}
}