WPML
Estado
Abierto
Etiquetas de temática
Bug

Resumen del problema

Cuando asigna términos a las entradas, WordPress almacena un total acumulado del número de entradas a las que se ha asignado un término en particular.

Si elimina un término de alguna entrada, el recuento se reduce. Si la configuración está establecida para que los términos se sincronicen, el término traducido se eliminará de la entrada traducida, pero el recuento no disminuye.

Solución alternativa

Puede añadir el siguiente fragmento de código (mediante un plugin o el archivo functions.php de su tema) para forzar que se recalculen los recuentos de términos para las traducciones:

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

Todos los problemas conocidos →