- Status
- Offen
- Themen-Tags
- Bug
Übersicht über das Problem
Wenn Sie Beiträgen Begriffe zuweisen, speichert WordPress eine laufende Summe der Anzahl der Beiträge, denen ein bestimmter Begriff zugewiesen wurde.
Wenn Sie einen Begriff aus einem Beitrag entfernen, wird die Anzahl reduziert. Wenn in den Einstellungen festgelegt ist, dass Begriffe synchronisiert werden, wird der übersetzte Begriff aus dem übersetzten Beitrag entfernt, die Anzahl verringert sich jedoch nicht.
Problemumgehung
Sie können das folgende Code-Snippet (über ein Plugin oder die Datei functions.php Ihres Themes) hinzufügen, um eine Neuberechnung der Begriffsanzahl für die Übersetzungen zu erzwingen:
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);