RTLに合わせた言語のワードプレスサイトがありますが、英語のページもあります。ただし、英語のテキストはRTL言語と一致しているため、これらのページはひどく見えます。句読点などは間違った側に表示されます。
1ページまたは複数のページに言語を設定するにはどうすればよいですか。
locale
フィルタを使用すると、ロケールを明確に設定できます。現在のページを確認し、それに基づいて値を変更することができます。
add_filter('locale', 'change_my_locale');
function change_my_locale( $locale ) {
if ( is_page('slug-here') ) {
return 'en_US';
}
return $locale;
}
あなたはあなたのタスクを解決するためにlocale
フックを使うべきです。
これは後で定義するので、テーマに追加してis_page
関数を使用することはできません。
そのため、 plugin または を作成する必要があります。この方法でURLを解析しながらplugin を使用する必要があります。
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;
});
関連回答: 実行時にロケールを変更しますか?
これは@ jack-johanssonによるソリューションのタイミングの問題に対する修正です。
add_action('wp', function() {
if ( is_page('slug-here') ) {
add_filter('locale', function( $locale ) {
return 'en_US';
});
}
});