让我们看看get_the_terms
Codex page. 我们可以在那里找到此函数可能返回:
(array | false | WP\\u Error)WP\\u Term对象数组成功,如果没有术语或post不存在,则为false,失败时为WP\\u Error。
因此,只有在一种情况下,当函数返回一个术语数组时,代码才能正常工作。
但它也可能返回WP_Error
如果发生任何错误,或false
如果给定的分类法中没有该帖子的术语。
所以是的,您应该始终在代码中包含正确的错误检查。可能是这样的:
global $product, $post, $smof_data;
$cats = get_the_terms($post->ID, \'product_cat\');
$cat_count = ( !empty( $cats ) && ! is_wp_error( $cats ) ) ? count($cats) : 0;
$tags = get_the_terms($post->ID, \'product_tag\');
$tag_count = ( !empty( $tags ) && ! is_wp_error( $tags ) ) ? count($tags) : 0;