Ich habe eine WordPress-Site in einer Sprache, die RTL ausrichtet, aber einige Seiten sind in Englisch. Diese Seiten sehen jedoch furchtbar aus, da der englische Text an der RTL-Sprache ausgerichtet ist und Satzzeichen usw. auf der falschen Seite erscheinen.
Wie kann ich die Sprache für eine einzelne Seite oder mehrere einzelne Seiten einstellen?
Der locale
Filter, mit dem Sie das Gebietsschema spezifisch festlegen können. Sie können die aktuelle Seite überprüfen und den Wert darauf basierend ändern.
add_filter('locale', 'change_my_locale');
function change_my_locale( $locale ) {
if ( is_page('slug-here') ) {
return 'en_US';
}
return $locale;
}
Sie sollten locale
hook verwenden, um Ihre Aufgabe zu lösen.
Wichtiger Hinweis, dass Sie es nicht zum Thema hinzufügen und die Funktion is_page
verwenden können, da sie später definiert wird.
Sie müssen also plugin oder plugin mit folgender URL-Analyse verwenden:
add_filter('locale', function($locale) {
$path = trim($_SERVER['REQUEST_URI'], "/");
// get last part as slug
$arr = explode("/", $path);
$slug = end($arr);
if($slug === 'MY_SLUG')
return 'ru_RU';
return $locale;
});
Zugehörige Antwort: Gebietsschema zur Laufzeit ändern?
Hier ist ein Fix für das Problem des Timings in der Lösung von @ jack-johansson:
add_action('wp', function() {
if ( is_page('slug-here') ) {
add_filter('locale', function( $locale ) {
return 'en_US';
});
}
});