- Status
- Resolvido
Visão geral do problema
Quando a URL é inválida em um idioma, o WPML verifica se essa URL pode ser válida em outro idioma. Se isso for confirmado, o WPML redirecionará o visitante para a URL correta com a informação do idioma.
No entanto, esse comportamento pode causar problemas com regras de reescrita personalizadas.
Solução alternativa
O WPML fornece o filtro wpml_is_redirected neste redirecionamento. A seguir está um exemplo de como usá-lo:
/**
* 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 );