- 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);