我试图删除所有自定义分类对象,包括使用WPML进行的翻译。
$terms = get_terms('product-category');
foreach ($terms as $term) {
wp_delete_term($term->term_id, 'product-category');
}
这样做是删除所有主要语言分类,但所有翻译都保留。删除所有分类法及其翻译的正确方法是什么。同样重要的是,* _icl_translations表中的翻译链接将被删除以用于分类法。
答案 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');
}
}
}