Php 使用wpml以编程方式翻译商业术语

Php 使用wpml以编程方式翻译商业术语,php,wordpress,woocommerce,wpml,Php,Wordpress,Woocommerce,Wpml,我已经开发了woocommerce产品的进口商,我需要翻译产品,当然还有相关的分类法 对于翻译,我决定使用wpml,不幸的是,我无法将德语指定给翻译的分类法 不幸的是,我甚至在WPML支持论坛上找不到解决问题的帮助,而在线提供的代码也不适合我 global $sitepress; $args_it = array( 'description'=> $term_name_it, 'slug' => $term_slug, 'parent' => 0 ); $args_de =

我已经开发了woocommerce产品的进口商,我需要翻译产品,当然还有相关的分类法

对于翻译,我决定使用wpml,不幸的是,我无法将德语指定给翻译的分类法

不幸的是,我甚至在WPML支持论坛上找不到解决问题的帮助,而在线提供的代码也不适合我

global $sitepress;

$args_it = array( 'description'=> $term_name_it, 'slug' => $term_slug, 'parent' => 0 );
$args_de = array( 'description'=> $term_name_de, 'slug' => $term_slug. "-de", 'parent' => 0 );

$term_it = wp_insert_term( $term_name_it, 'product_cat', $args_it );
$term_de = wp_insert_term( $term_name_de, 'product_cat', $args_de );

// get the trid from the original
$trid = $sitepress->get_element_trid($term_it['term_id'], 'tax_product_cat');

// associate the translated term to the original
$sitepress->set_element_language_details($term_de['term_id'], 'tax_product_cat', $trid, 'de', $sitepress->get_default_language());


目前,使用这段代码,我没有任何错误,但它向我显示了所有术语,就好像它们都是意大利语而不是翻译的一样。

我意识到$trid是空的,元素id中的“wp\u icl\u translations”表保存了值“term\u taxonomy\u id”,而不是“term\u id”

下面是解决我问题的代码。玩得开心

global $sitepress;


$args_it = array( 'description'=> $term_name_it, 'slug' => $term_slug, 'parent' => 0 );
$args_de = array( 'description'=> $term_name_de, 'slug' => $term_slug. "-de", 'parent' => 0 );

$term_it = wp_insert_term( $term_name_it, 'product_cat', $args_it );
$term_de = wp_insert_term( $term_name_de, 'product_cat', $args_de );

// get the trid from the original
$trid = $sitepress->get_element_trid($term_it['term_taxonomy_id'], 'tax_product_cat');

if (! empty($trid)) {
     // associate the translated term to the original
     $sitepress->set_element_language_details($term_de['term_taxonomy_id'], 'tax_product_cat', $trid, 'de', $sitepress->get_default_language());
     $sitepress->set_element_language_details($term_it['term_taxonomy_id'], 'tax_product_cat', $trid, 'it', $sitepress->get_default_language());
} else {
     // $trid is NULL 
}