Ir al contenido Ir a la barra lateral

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

Problem:
El cliente intenta publicar contenido en varios idiomas y enlazar traducciones usando la API desde Make.com con WPML, pero encuentra que WPML no tiene una API REST oficial para crear y enlazar traducciones directamente.
Solution:
Si estás experimentando este problema, te recomendamos:
1. Crear el contenido en el idioma principal usando la API REST estándar de WordPress.
2. Crear las traducciones como nuevos posts y relacionarlos con el post original utilizando un meta personalizado o desarrollando un endpoint personalizado en tu sitio que utilice las funciones internas de WPML para enlazar traducciones (por ejemplo,

wpml_add_translations

).
Este tipo de integración requiere desarrollo personalizado, ya que WPML no ofrece directamente un mecanismo en la API REST para hacerlo automáticamente.
Si necesitas asistencia adicional, puedes consultar con nuestros contratistas certificados que podrían ayudarte a desarrollar esta funcionalidad a medida.

Es posible que esta solución sea irrelevante si está desactualizada o no se aplica a tu caso. Te recomendamos revisar los problemas conocidos, verificar la versión del arreglo permanente y confirmar que tienes instaladas las últimas versiones de temas y plugins. Si el problema persiste, te sugerimos abrir un nuevo ticket de soporte.

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 5 respuestas, tiene 0 voces.

Última actualización por Carlos Rojas hace 4 días, 1 hora.

Asistido por: Carlos Rojas.

Autor Publicaciones
julio 15, 2025 a las 10:54 am #17237385

eric-jorgeS

Antecedentes del problema:
Estoy intentando publicar contenido en varios idiomas con la API desde make.com usando WPML. He estado leyendo información en el foro y ayuda de la IA, pero no encontré solución.

He probado con varias llamadas a la API:

/wp-json/wpml/v1/posts
/wp-json/link_translation/post
/wp-json/wpml/v1/translations
/wp-json/wpml/tm/v1/translations
/wp-json/wpml/v1/
/wp-json/wpml/v2/
/wpml/v1/translations

Síntomas:
Sólo he logrado publicar contenidos en idiomas individuales, pero no enlazar las traducciones o subir el contenido con todas las traducciones.

Preguntas:
¿Cómo puedo enlazar las traducciones al publicar contenido en varios idiomas usando la API?
¿Cómo puedo subir contenido con todas las traducciones desde make.com?

julio 15, 2025 a las 11:21 am #17237498

Carlos Rojas
Partidario de WPML desde 03/2017

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

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

Hola,
Muchas gracias por contactarnos

Actualmente, WPML no ofrece una API REST pública oficial para crear y enlazar traducciones directamente desde herramientas como Make.com. Las rutas que menciona no forman parte de la API oficial disponible públicamente.

Para lograr su objetivo, la opción recomendada es:
- Crear el contenido en el idioma principal mediante la API REST estándar de WordPress.
- Crear las traducciones como nuevos posts y relacionarlos con el post original utilizando un meta personalizado o desarrollando un endpoint personalizado en su sitio que utilice las funciones internas de WPML para enlazar traducciones (wpml_add_translations, por ejemplo).

Lamentablemente, este tipo de integración requiere desarrollo personalizado, ya que WPML no ofrece directamente un mecanismo en la API REST para hacerlo automáticamente.

Si lo desea, puede consultar con nuestros contratistas certificados que podrían ayudarle a desarrollar esta funcionalidad a medida: https://wpml.org/contractors/

Muchas gracias por su paciencia y comprensión!
Saludos,
Carlos

julio 15, 2025 a las 11:35 am #17237539

eric-jorgeS

Me choca mucho que después de tantos años con un plugin de pago no se disponga, más aun cuando es algo que la comunidad solicita bastante por lo que he podido ver desde hace varios años ya.

Justo que un plugin de traducciones tenga API para subir contenidos en multiples idiomas pero no tenga para relacionarlos y tengas que hacerlo manual o con end point me crea choca bastante.

Entiendo que tendrán otras prioridades, pero lo veo algo que facilitaría a mucha gente trabajar con ello.

Estoy probando a configurar un end point e todos modos.

julio 15, 2025 a las 1:04 pm #17237873

Carlos Rojas
Partidario de WPML desde 03/2017

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

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

Gracias por su comentario. Entendemos perfectamente su punto de vista y compartimos la percepción de que contar con una API oficial para gestionar traducciones y sus enlaces sería de gran utilidad para muchos usuarios que automatizan procesos o integran WPML con otros sistemas.

De hecho, esta es una petición que hemos recibido en varias ocasiones y que el equipo de desarrollo tiene registrada como una posible mejora futura. Sin embargo, como menciona, la planificación de nuevas funcionalidades depende de distintos factores y prioridades, y lamentablemente aún no tenemos una fecha definida para la implementación de esta característica.

Le agradecemos mucho que haya compartido su experiencia. Le animamos a que continúe con su implementación personalizada y, si lo desea, podemos orientarle con algunos recursos técnicos para facilitar la creación de su endpoint.

Gracias nuevamente por su comprensión y por confiar en WPML.
Quedamos atentos si necesita más ayuda o recursos adicionales.

julio 15, 2025 a las 1:50 pm #17238099

eric-jorgeS

Más de 4 años y no tenéis fechas en una herramienta de pago...

Al final lo que hice para resolverlo fue esto.

Creo los contenidos en diferentes idiomas con el módulo de WordPress MAKE AN API CALL a la url: posts?lang=XX, donde XX es el idioma (ca, en, es, etc.)

En body le inserto lo siguiente:
{
"title": "Título traducido",
"content": "<p>Contenido traducido en HTML</p>",
"status": "publish",
"excerpt": "Resumen traducido",
"slug": "mi-slug"
}

********************Screenshots 167 y 168.********************

Luego creo el end point:

Código para functions.php
// ============= Link Translation endpoint (WPML) =============
add_action( 'rest_api_init', function () {

register_rest_route( 'link_translation', '/post', [
'methods' => 'POST',
'callback' => 'lt_link_translation',
'permission_callback' => function () { return current_user_can( 'edit_posts' ); },
'args' => [
'original' => [ 'type' => 'integer', 'required' => true ],
'translation' => [ 'type' => 'integer', 'required' => true ],
'lang' => [ 'type' => 'string', 'required' => true ],
],
] );
} );

function lt_link_translation( WP_REST_Request $req ) {

$orig_id = $req->get_param( 'original' );
$trans_id = $req->get_param( 'translation' );
$lang_code = $req->get_param( 'lang' );

$el_type = apply_filters( 'wpml_element_type', 'post' );

$info = apply_filters(
'wpml_element_language_details',
null,
[ 'element_id' => $orig_id, 'element_type' => $el_type ]
);

if ( empty( $info->trid ) ) {
return new WP_Error( 'no_trid', 'TRID no encontrado para el post original', [ 'status' => 400 ] );
}

do_action( 'wpml_set_element_language_details', [
'element_id' => $trans_id,
'element_type' => $el_type,
'trid' => $info->trid,
'language_code' => $lang_code,
'source_language_code' => $info->language_code,
] );

return [ 'status' => 'linked', 'trid' => $info->trid ];
}
// =============================================================

Lanzo una solicitud POST a /wp-json/link_translation/post

Y lanzo el json:
{
"original": id_post_es_sin_comillas,
"translation": id_post_en_sin_comillas,
"lang": "idioma_acortado_de_la_variable_translation_tipo_en_ca_es_o_el_que_sea"
}

********************Screenshots 165 y 166.********************

Adjunto capturas de la configuración de Http request en make.com

Screenshot_166.jpg
Screenshot_165.jpg
Screenshot_168.jpg
Screenshot_167.jpg
julio 15, 2025 a las 1:53 pm #17238160

eric-jorgeS

¿Podéis formatear el mensaje o crear alguna guía sobre esto para que les sea útil a otros usuarios?

julio 16, 2025 a las 7:22 am #17240227

Carlos Rojas
Partidario de WPML desde 03/2017

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

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

Muchas gracias por compartir la solución.

Su mensaje quedará público para que otros usuarios con el mismo problema puedan encontrarlo mientras buscan soluciones similares en el foro.

Que tengas un excelente día!