WordPressのプロフィール言語に応じてテーマの翻訳を切り替える
作成日:
2021年5月11日
WordPressの公開されているテーマは主に英語ベースで作成されており、英語圏外でそのテーマを使用する際は翻訳ファイルを作成して自国語に合わせた表示を行います。
その際、テーマの「設定」›「一般設定」›「サイトの言語」で指定します。
では、多言語サイトを構築する際に、ユーザーはそれぞれプロフィールで言語を指定出来ますが、これはWordPressの管理画面の表示やメール通知などのシステムに関する言語が変更されるだけで、サイト自体は「サイトの言語」で指定された表示のままです。
これをユーザーのプロフィールで指定した言語に応じてサイトの表示を言語切替する方法を調べました。
PHP
function change_lang( $locale ) {
if ( is_user_logged_in() && ! is_admin() ) {
return get_user_locale();
}
}
add_filter( 'locale', 'change_lang' );
シンプルでしたね。
追記
管理画面でこれやると、サイトの言語設定変更する時にメモリエラー起こすみたいなので、! is_admin()
追加。
参考
Change WordPress language based on user setting
https://wordpress.stackexchange.com/questions/175260/change-wordpress-language-based-on-user-setting
I want to change the language of my WordPress installation based on a choice the user can make in his profile (dropdown menu). As I want to change frontend (prepared .mo files for the theme) and b...
物草 灸太郎
WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。
コメントをどうぞ