Wordpress get_terms包括翻译

时间:2014-04-25 08:53:35

标签: wordpress wpml

我试图删除所有自定义分类对象,包括使用WPML进行的翻译。

$terms = get_terms('product-category');
foreach ($terms as $term) {
    wp_delete_term($term->term_id, 'product-category');
}

这样做是删除所有主要语言分类,但所有翻译都保留。删除所有分类法及其翻译的正确方法是什么。同样重要的是,* _icl_translations表中的翻译链接将被删除以用于分类法。

1 个答案:

答案 0 :(得分:1)

您需要使用icl_object_id函数。即:

icl_object_id( {term_id}, {taxonomy}, false, {language} );

以下是易于理解的完整示例:

$all_languages = icl_get_languages();
$terms = get_terms('product-category');
foreach ($terms as $term) {
    wp_delete_term($term->term_id, 'product-category');
    foreach ($all_languages as $lang => $row) {
        if ($term_id = icl_object_id( $term->term_id, 'product-category', false, $lang )){
            wp_delete_term($term_id, 'product-category');
        }
    }
}