Este hilo está resuelto. Aquí tienes una descripción del problema y la solución.
Problema:
El cliente necesita que WPML resuelva y muestre la traducción correcta cuando se utiliza el slug del idioma original en el dominio del idioma secundario.
Solución:
No existe una configuración nativa en WPML para este comportamiento. Se requiere una solución personalizada que implemente una lógica de fallback para redirigir (301) cuando se accede a un slug del idioma original en el dominio del idioma secundario. Los pasos son:
1. Detectar el slug solicitado.
2. Buscar si ese slug existe en el idioma original (ES).
3. Si existe, obtener el ID de la traducción en el idioma secundario (EN) y hacer una redirección 301 al permalink canónico en EN.
Este enfoque es consistente con SEO, evita contenido duplicado y no interfiere con la resolución estándar de WordPress/WPML. Los hooks útiles incluyen
template_redirect
y varios de WPML como
wpml_object_id
,
wpml_element_trid
, y
wpml_get_element_translations
.
Aquí tienes un ejemplo de código que puedes adaptar y probar:
add_action('template_redirect', function () {<br /> if (!is_404()) return;<br /> $requested = trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/');<br /> if ($requested === '') return;<br /> $default_lang = 'es';<br /> $current_lang = apply_filters('wpml_current_language', null);<br /> if ($current_lang === $default_lang) return;<br /> do_action('wpml_switch_language', $default_lang);<br /> $post = get_page_by_path($requested, OBJECT, ['post', 'page']);<br /> do_action('wpml_switch_language', $current_lang);<br /> if (!$post) return;<br /> $translated_id = apply_filters('wpml_object_id', $post->ID, $post->post_type, false, $current_lang);<br /> if ($translated_id) {<br /> wp_redirect(get_permalink($translated_id), 301);<br /> exit;<br /> }<br />});Para más detalles sobre los hooks de WPML, visita WPML Hooks Reference.
Si esta solución no resuelve tu problema o si la información parece desactualizada, te recomendamos abrir un nuevo ticket de soporte en el foro de soporte de WPML. También es aconsejable revisar los problemas conocidos y confirmar 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.
Este tema contiene 1 respuesta, tiene 0 voces.
Última actualización por hace 3 meses, 1 semana.
Asistido por: Otto.