1

WPML で作成された翻訳を含むすべてのカスタム分類オブジェクトを削除しようとしています。

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

これが行うことは、すべての主要な言語分類法を削除することですが、すべての翻訳は残されます。すべてのタクソノミーとその翻訳を削除する正しい方法は何ですか? タクソノミの *_icl_translations テーブルの翻訳リンクが削除されることも重要です。

4

1 に答える 1

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');
        }
    }
}
于 2014-04-25T10:20:24.317 に答える