You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取当前自定义文章类型下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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:21:56