- ステータス
- 解決済み
問題の概要
ある言語で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 );