WPML
Статус
Решено

Обзор проблемы

Когда 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 );

Все известные проблемы →