get_term函数未为wpml转换后的术语返回正确的值

时间:2019-05-13 09:26:32

标签: wordpress wpml

我在woocommerce中为可变产品设置了颜色属性。我已经使用 WPML 为此属性项(Bluee和Redd)设置了翻译。当我使用以下代码时,它将基于当前语言返回两个不同的ID。当语言为英语时,将返回 21 ,而当语言为意大利语时,返回 30

foreach( $product->get_variation_attributes() as $taxonomy => $terms_slug ){
    foreach($terms_slug as $term){

        // Getting the term object from the slug
        $term_obj  = get_term_by('slug', $term, $taxonomy);
        $id = icl_object_id ( $term_obj->term_id, $taxonomy, true, $current_language);
        $t_term = get_term($id, $term_obj->taxonomy);
    }
}

当我将$current_language替换为$default_language时,英语和意大利语都将返回 21 。 但是问题是,当我使用

get_term($id, $term_obj->taxonomy);

这总是输出该语言可用的字符串。即,如果语言是英语,则以英语返回术语,如果语言是意大利语,则以意大利语返回术语名称。旨在以英文返回术语名称,而与语言设置无关。

感谢您的帮助。

更新

当我使用get_terms()函数返回分类法的所有相关术语时,当语言为英语时,我将获得所有术语对象。如果语言是意大利语,则会收到一个空数组。

0 个答案:

没有答案