- Estado
- Resuelto
Resumen del problema
Cuando la URL no es válida en un idioma, WPML comprueba si esta URL podría ser válida en otro idioma. Si esto se confirma, WPML redirigirá al visitante a la URL correcta con la información del idioma.
Sin embargo, este comportamiento podría causar problemas con las reglas de reescritura personalizadas.
Solución alternativa
WPML proporciona el filtro wpml_is_redirected en esta redirección. El siguiente es un ejemplo de cómo usarlo:
/**
* This will prevent redirection in the secondary language for the custom rule:
* '^products/([A-Za-z0-9-]+)/?' => 'index.php?pagename=new-sample&type=$matches[1]'
*/
function wpmlcore_4704_block_redirect( $redirect, $post_id, $q ) {
// Decide on which condition we should prevent the redirection
if ( isset( $q->query_vars['pagename'] ) && 'sample-page' === $q->query_vars['pagename'] ) {
return false;
}
return $redirect;
}
add_filter( 'wpml_is_redirected', 'wpmlcore_4704_block_redirect', 10, 3 );