- Статус
- Решено
Обзор проблемы
Когда URL-адрес недействителен на одном языке, WPML проверяет, может ли этот URL быть действительным на другом языке. Если это подтверждается, WPML перенаправит посетителя на правильный URL-адрес с информацией о языке.
Однако такое поведение может вызвать проблемы с пользовательскими правилами перезаписи.
Обходное решение
WPML предоставляет фильтр wpml_is_redirected для этого перенаправления. Ниже приведен пример его использования:
/**
* 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 );