- Status
- Gelöst
Übersicht über das Problem
Wenn die URL in einer Sprache ungültig ist, prüft WPML, ob diese URL in einer anderen Sprache gültig sein könnte. Wenn sich dies bestätigt, leitet WPML den Besucher auf die korrekte URL mit den Sprachinformationen um.
Dieses Verhalten kann jedoch zu Problemen mit benutzerdefinierten Rewrite-Regeln führen.
Problemumgehung
WPML stellt für diese Weiterleitung den Filter wpml_is_redirected bereit. Das folgende Beispiel zeigt, wie Sie ihn verwenden:
/**
* 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 );