WPML
Statut
Ouvert
Étiquettes de sujet
Bug

Aperçu de l’anomalie

Lorsque vous attribuez des termes à des articles, WordPress enregistre un total actualisé du nombre d’articles auxquels un terme particulier a été attribué.

Si vous supprimez un terme d’un article, le nombre est réduit. Si les paramètres prévoient la synchronisation des termes, le terme traduit sera supprimé de l’article traduit, mais le nombre ne diminue pas.

Solution de contournement

Vous pouvez ajouter l’extrait de code suivant (via une extension ou le fichier functions.php de votre thème) pour forcer le recalcul du nombre de termes pour les traductions :

add_action( 'deleted_term_relationships', function($object_id, $tt_ids, $taxonomy){

    $trids = array();
    $translated_tt_ids = array();

    foreach ($tt_ids as $tt_id) {
        $trids[] = apply_filters( 'wpml_element_trid', NULL, $tt_id, 'tax_'.$taxonomy );
    }

    foreach ($trids as $trid) {
        $translations = apply_filters( 'wpml_get_element_translations', NULL, $trid, 'tax_'.$taxonomy );
        foreach ($translations as $lang => $translation) {
            $translated_tt_ids[] = $translation->element_id;
        }
    }    

    $translated_tt_ids = array_diff( $translated_tt_ids, $tt_ids );

    if ( count( $translated_tt_ids ) ) {
        wp_update_term_count( $translated_tt_ids, $taxonomy );
    }

}, 11, 3);

Toutes les anomalies connues →