WordPressのプロフィール言語に応じてテーマの翻訳を切り替える

作成日:

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を楽しんでいます。

コメントをどうぞ

  • メールアドレスが公開されることはありません。
  • コメント欄にURLは入力できません。
  • このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシー利用規約が適用されます。