ユーザーごとの言語設定を変更する
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 が返却されるのがポイント。