如何获取当前自定义文章类型下generetax分类法的term_id而非名称
解决获取generetax分类法term_id的问题
嗨,我来帮你搞定这个问题!你已经拿到了WP_Term对象却取不到term_id,大概率是因为返回的不是单个对象,而是WP_Term对象的数组,直接用$terms->term_id自然拿不到值,得对应调整处理方式:
方法一:遍历数组获取每个term_id
如果你的自定义文章关联了多个generetax术语,就需要循环遍历数组里的每个WP_Term对象:
// 替换$post_id为你的自定义文章类型的ID $terms = wp_get_object_terms( $post_id, 'generetax' ); // 先判断返回结果是否有效 if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) { foreach ( $terms as $term ) { // 这里就能拿到每个术语的term_id了 echo $term->term_id; } }
方法二:直接获取term_id数组(更高效)
如果只需要term_id,不用处理完整的WP_Term对象,可以直接在获取时指定返回字段为ids,一步到位:
$term_ids = wp_get_object_terms( $post_id, 'generetax', array( 'fields' => 'ids' ) ); if ( ! empty( $term_ids ) && ! is_wp_error( $term_ids ) ) { foreach ( $term_ids as $term_id ) { echo $term_id; } }
方法三:获取单个术语的term_id
如果你的文章只关联了一个generetax术语,可以直接取数组的第一个元素:
$terms = wp_get_object_terms( $post_id, 'generetax' ); if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) { $single_term = current( $terms ); // 取数组第一个元素 echo $single_term->term_id; }
你之前的问题核心就是没意识到返回的是数组,直接去调用数组的term_id属性当然没用,按上面的方式调整就能拿到你要的term_id啦~
内容的提问来源于stack exchange,提问作者Mona Coder
相关产品推荐
相关产品推荐

