我在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()函数返回分类法的所有相关术语时,当语言为英语时,我将获得所有术语对象。如果语言是意大利语,则会收到一个空数组。