J'ai un site wordpress dans une langue qui aligne RTL, mais certaines pages sont en anglais. Cependant, ces pages semblent terribles, car le texte anglais est aligné sur le langage RTL, la ponctuation, etc. apparaît du mauvais côté.
Comment définir la langue d'une seule page ou de plusieurs pages individuelles?
Le filtre locale
qui vous permet de définir les paramètres régionaux de manière spécifique. Vous pouvez vérifier la page actuelle et modifier la valeur en fonction de cela.
add_filter('locale', 'change_my_locale');
function change_my_locale( $locale ) {
if ( is_page('slug-here') ) {
return 'en_US';
}
return $locale;
}
Vous devez utiliser le crochet locale
pour résoudre votre tâche.
Remarque importante que vous ne pouvez pas l'ajouter dans le thème et utiliser la fonction is_page
, car elle sera définie ultérieurement.
Vous devez donc créer plugin ou devez utiliser le plugin avec l’analyse url de cette façon:
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;
});
Réponse associée: Changer les paramètres régionaux au moment de l'exécution?
Voici un correctif au problème de synchronisation dans la solution de @ jack-johansson:
add_action('wp', function() {
if ( is_page('slug-here') ) {
add_filter('locale', function( $locale ) {
return 'en_US';
});
}
});