Saltar al contenido Saltar a la barra lateral

Este hilo está resuelto. Aquí tienes una descripción del problema y la solución.

Problema:
Si estás enfrentando problemas con las traducciones enlazadas en WPML y observas que al guardar una traducción se genera un nuevo TRID en lugar de conectar con el existente, podría deberse a la política de seguridad 'no-referer' de tu sitio que impide que el navegador envíe la cabecera HTTP_REFERER. Esto hace que WPML no pueda detectar si una solicitud proviene del backend o del frontend, asumiendo incorrectamente que es del frontend y creando un nuevo ID de traducción.

Solución:
Si tu versión de WordPress es 6.7 o superior, puedes implementar el siguiente workaround:
1. Añade este código en el archivo functions.php de tu tema activo:

add_action( 'admin_head', function() {<br />    $screen = get_current_screen();<br /><br />    if ( $screen->base === 'post' ) {<br />        ?><br />        <script><br />            // WPML patch - wpmldev-5955<br />            if ( typeof wp?.hooks?.addFilter === 'function' ) {<br />                wp.hooks.addFilter('editor.preSavePost', 'WPML', edits => {<br />                    edits.fromBackend = true;<br />                    return edits;<br />                });<br />            }<br />        </script><br />        <?php<br />    }<br />} );<br />

2. Modifica el archivo dentro del plugin WPML: wp-content/plugins/sitepress-multilingual-cms/classes/url-handling/class-wpml-url-http-referer.php, reemplazando la función existente por:

public static function is_post_edit_page() {<br />    if ( ! isset( $_SERVER['HTTP_REFERER'] ) ) {<br />        $requestBody = json_decode( rest_get_server()->get_raw_data() );<br />        return is_object( $requestBody ) && ! empty( $requestBody->fromBackend );<br />    }<br /><br />    return isset( $_SERVER['HTTP_REFERER'] )<br />           && ( strpos( $_SERVER['HTTP_REFERER'], 'wp-admin/post.php' )<br />                || strpos( $_SERVER['HTTP_REFERER'], 'wp-admin/post-new.php' )<br />                || strpos( $_SERVER['HTTP_REFERER'], 'wp-admin/edit.php' ) );<br />}<br />

Si esta solución no resuelve tu problema o si la encuentras irrelevante debido a que está desactualizada o no se ajusta a tu caso, te recomendamos abrir un nuevo ticket de soporte. También es altamente recomendable que revises los problemas conocidos y verifiques que tienes instaladas las últimas versiones de los temas y plugins.

Este es el foro de soporte técnico de WPML, el plugin multilingüe de WordPress.

Todas las personas pueden leerlo pero solo los clientes de WPML pueden ingresar comentarios. El equipo de WPML responde en los foros 6 días a la semana, 22 horas por día.

Etiquetado: 

Este tema contiene 52 respuestas, tiene 0 voces.

Última actualización por Paola Mendiburu hace 1 mes, 3 semanas.

Asistido por: Paola Mendiburu.

Autor Publicaciones
octubre 1, 2025 a las 5:37 pm #17449860

Paola Mendiburu
Partidario de WPML desde 11/2020

Idiomas: Inglés (English ) Español (Español ) Italiano (Italiano )

Zona horaria: Europe/Madrid (GMT+01:00)

He revisado y en la base de datos faltaban columnas de icl_transaltion_job y de icl_translations. Ya he añadido las columnas faltantes.

Puedes por favor reinstalar el plugin ya que a mi no me deja.

Avisame cuando lo hayas hecho.

Gracias.

octubre 2, 2025 a las 5:36 am #17450523

inigoC-2

Buenas,

He borrado el plugin manualmente, y lo he vuelto a instalar usando OTGS Installer, se ha descargado la version 4.8.2

Gracias
Saludos

octubre 2, 2025 a las 4:20 pm #17452661

Paola Mendiburu
Partidario de WPML desde 11/2020

Idiomas: Inglés (English ) Español (Español ) Italiano (Italiano )

Zona horaria: Europe/Madrid (GMT+01:00)

Ok el problema persiste.

¿Me das permiso para descargar una copia y poder pasarlo al segundo nivel?

octubre 3, 2025 a las 7:51 am #17453688

inigoC-2

Ok, adelante con la copia. Solo confírmanos antes por favor qué es lo que se copiará exactamente.

Gracias,
Saludos

octubre 3, 2025 a las 5:27 pm #17455148

Paola Mendiburu
Partidario de WPML desde 11/2020

Idiomas: Inglés (English ) Español (Español ) Italiano (Italiano )

Zona horaria: Europe/Madrid (GMT+01:00)

Lo he escalado al segundo nivel.

Si se necesita se hace copia con Duplicator pero no se cogen ni los archivos ni el cache pero lo mismo no es necesario.

Te aviso en cuanto tenga noticias.

octubre 6, 2025 a las 8:44 am #17458778

Paola Mendiburu
Partidario de WPML desde 11/2020

Idiomas: Inglés (English ) Español (Español ) Italiano (Italiano )

Zona horaria: Europe/Madrid (GMT+01:00)

Hola!

Para saber los detalles del error que te está dando, ¿podrías hacer lo siguiente?
- Accede al archivo wp-config.php (ubicado en el root de WordPress).
- Inserta estas líneas justo antes de /* That's all, stop editing! Happy blogging. */

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Reproduce el problema, luego accede al registro de depuración aquí: /wp-content/debug.log y copia y pega la información en tu próxima respuesta.
Más info: https://wordpress.org/support/article/debugging-in-wordpress/

Tener este reporte nos ayudará en encontrar la raíz del problema.

octubre 8, 2025 a las 3:16 pm #17467850

inigoC-2

Buenas,

Ya teníamos esas lineas de debug puestas, pero nuestros logs no salen en /wp-content/debug.log , nuestros logs salen en: ~/logs/precms_inithealth_com.php.error.log

Y haciendo una prueba de crear una entrada y su traduccion, en los logs no se ven mas que los que ponemos nosotros manualmente, se esperaba ver otro tipo de logs?

Gracias,
Saludos

octubre 8, 2025 a las 3:51 pm #17467920

Paola Mendiburu
Partidario de WPML desde 11/2020

Idiomas: Inglés (English ) Español (Español ) Italiano (Italiano )

Zona horaria: Europe/Madrid (GMT+01:00)

Hola!

Estoy intentado acceder a la web pero me da error.

¿podrías instalar el plugin Duplicator? de esta manera puedo descargar una copia y pasarla al segundo nivel.

He marcado la siguiente respuesta como privada para que puedas añadir credenciales.

octubre 10, 2025 a las 5:56 am #17473388

inigoC-2

Buenas,

Hemos instalado el plugin, duplicator pro, pero esta pidiendo una key
Your Duplicator Pro license key is missing ...

No sé si aun así dejará hacer la copia

Nos comentáis

Gracias,
Saludos

octubre 10, 2025 a las 1:57 pm #17474725

Paola Mendiburu
Partidario de WPML desde 11/2020

Idiomas: Inglés (English ) Español (Español ) Italiano (Italiano )

Zona horaria: Europe/Madrid (GMT+01:00)

Gracias.

Ya lo he podido escalar al segundo nivel.

Te aviso en cuanto tenga noticias.

octubre 15, 2025 a las 4:30 pm #17487835

Paola Mendiburu
Partidario de WPML desde 11/2020

Idiomas: Inglés (English ) Español (Español ) Italiano (Italiano )

Zona horaria: Europe/Madrid (GMT+01:00)

Hola!

Ya he obtenido respuesta del segundo nivel.

El problema estaba relacionado con un mu-plugin que tenías con este código:

<?php
/**
 * WPML fix: forzar creación de tablas icl_* si faltan.
 */


// error_log('[WPML FIX] mu-plugin cargado en el siteID: ' .  get_current_blog_id());

add_action('save_post', function ($post_id, $post) {
    if ($post->post_type === 'revision' || wp_is_post_autosave($post_id)) {
        error_log('Esta es una revisión post_id=%s status=%s', $post_id, $post->post_status);
        return;
    }
    $element_type = 'post_' . $post->post_type;
    $current_trid = apply_filters('wpml_element_trid', null, $post_id, $element_type);
    $lang = apply_filters('wpml_post_language_details', null, $post_id);
    error_log(sprintf('[WPML STATE] id=%d lang=%s trid=%s, status=%s',
        $post_id,
        $lang['language_code'] ?? 'NA',
        $current_trid ?: 'NA',
        $post->post_status
    ));

    $post_trid = isset($_POST['icl_trid']) ? (int)$_POST['icl_trid'] : 0;
    $post_lang = (isset($_POST['lang']) && $_POST['lang'] !== '' ? $_POST['lang'] : 'NA');

    error_log(sprintf('[WPML TRID] POST post_id=%d icl_trid=%s post_lang=%s status=%s',
        $post_id, $post_trid ?: 'NA', $post_lang, $post->post_status));

    error_log('---------------------------- fin action save_post');

}, 100, 2);

add_action('wpml_set_element_language_details', function($data){
    error_log(sprintf('[WPML] set_element_language_details element_id=%s type=%s trid=%s lang=%s src=%s',
        $data['element_id'] ?? 'NA',
        $data['element_type'] ?? 'NA',
        $data['trid'] ?? 'NA',
        $data['language_code'] ?? 'NA',
        $data['source_language_code'] ?? 'NA'
    ));
}, 10, 1);


Te sugiere que no uses ese plugin mu y lo intentes de nuevo.
Si llamas a wpml_set_element_language_details, estás anulando la funcionalidad básica de WPML y probablemente esta sea la razón del problema.

octubre 16, 2025 a las 5:18 am #17488693

inigoC-2

Hola,

Este código lo puse recientemente, en do_action on_save, para mostrar las trazas que puse en el mensaje https://wpml.org/es/forums/topic/problemas-con-traducciones-enlazadas/#post-17370223 , dónde se ve como llega la traducción con un trid distinto al que se debería usar de la traducción

Y en wpml_set_element_language_details para hacer algunas pruebas y olvidé quitarlo, pero el problema de las traducciones venía de antes.

Ya he quitado ese código pero el problema sigue, he creado dos post con sus respectivas traducciones pero no se han creado enlazadas

¿Podéis seguir revisando porfavor?

Gracias por el soporte

octubre 16, 2025 a las 7:32 am #17488928

Paola Mendiburu
Partidario de WPML desde 11/2020

Idiomas: Inglés (English ) Español (Español ) Italiano (Italiano )

Zona horaria: Europe/Madrid (GMT+01:00)

En local funciona correctamente.

Lo he vuelto a pasar al segundo nivel para que lo investigen.

Te aviso en cuanto tenga noticias.

octubre 16, 2025 a las 9:16 am #17489447

Paola Mendiburu
Partidario de WPML desde 11/2020

Idiomas: Inglés (English ) Español (Español ) Italiano (Italiano )

Zona horaria: Europe/Madrid (GMT+01:00)

Me dicen del segundo nivel que pruebes lo siguiente:
- desactivar Wordfence
- desactivar- Redis
- restart PHP-FPM

octubre 20, 2025 a las 9:30 am #17498697

inigoC-2

Buenos dias,

Hemos desactivado Wordfence, y reiniciado PHP-FPM, pero no tenemos el plugin Redis

Después de los cambios hemos probado a crear una nueva entrada, y sigue sin funcionar el enlazado de traducciones

Podéis seguir mirándolo porfavor?

Gracias
Saludos