wake-up-neo.com

Ändern der Sprache einer einzelnen Seite

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?

4
Null_Error

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;
}
2
Jack Johansson

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?

2
Anton Lukin

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';
    });
  }
});
0
maxime schoeni