制作ブログ Web制作アプリケーションWordPressユーザーごとに言語設定を変更したり、呼び出したりする

ユーザーごとに言語設定を変更したり、呼び出したりする

ユーザーごとの言語設定を変更する

update_user_meta(1, 'locale', 'en_US');

第1引数にユーザーID、第2引数にメタキーlocale、第3引数に言語コード(この場合は英語のen_US)を指定する。第3引数が空の場合(つまりはデフォルト)は、サイト全体のデフォルト言語設定が設定さる。
ちなみに上記の条件で日本語に変更する場合は、下記となる。

update_user_meta(1, 'locale', 'ja');

ユーザーごとの言語設定を呼び出す

$user_lang = get_user_meta(1, 'locale', true);

if (!$user_lang || $user_lang === '') {
  $user_lang = get_option('WPLANG');
}

get_user_metaでは、第1引数にユーザーID、第2引数にメタキーlocale、第3引数にtrue(単一の値を返すように指定)を指定している。

全体の言語とユーザーの設定言語が同じ場合、もしくは存在しないユーザーIDをセットした場合は、空文字が返却される。また、ログインしていないユーザーの場合はbooleanが返却される。それらにケアしているのがポイント。

補足: ユーザーIDの取得方法

$login_user = wp_get_current_user();
$login_id = strval($login_user -> ID);    // ログインしていない場合は、0 が返却される

ログインしていない場合は、0 が返却されるのがポイント。