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

Alle bekannten Probleme →