• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/get user meta

提供: WordPress Codex 日本語版
移動先: 案内検索

この項目「関数リファレンス/get user meta」は、翻訳チェック待ちの項目です。加筆、訂正などを通して、Codex ドキュメンテーションにご協力下さい。

説明

指定されたユーザーのメタデータを1つ、またはすべて取得します。内部で get_metadata() を使います。この関数は廃止された get_usermeta() の後継です。

使い方

<?php get_user_meta( $user_id, $key, $single ); ?>

パラメータ

$user_id
整数) (必須) メタデータを取得するユーザーの ID。
初期値: なし
$key
文字列) (オプション) 値(meta_value)を取得する wp_usermeta テーブル のキー(meta_key)。空文字列の場合、指定されたユーザーのすべてのメタデータを返します。
初期値: (空文字列)
$single
真偽値) (オプション) true ならメタデータの値を、false なら配列を返します。もし $key が空文字列ならこのパラメーターは働きません。
初期値: false

戻り値

(mixed) 
$key が省略されるか $single が false なら配列。$single が true ならメタデータの値。
参考: 指定されたメタデータが存在しない場合、$single が true なら、この関数は空文字列を返します。$single が false なら空の配列を返します。

用例

この例は ID が9のユーザーについて姓を取得して表示します。

<?php 
  $user_id = 9;
  $key = 'last_name';
  $single = true;
  $user_last = get_user_meta( $user_id, $key, $single ); 
  echo '<p>The '. $key . ' value for user id ' . $user_id . ' is: ' . $user_last . '</p>'; 
?>
The last_name value for user id 9 is Franklin


すべてのメタデータを取得

この例は $key を省略することにより、指定されたユーザー(この例では user_id が9)のすべてのメタデータを取得します。

<?php
  $all_meta_for_user = get_user_meta( 9 );
  print_r( $all_meta_for_user );
?>

結果は:

Array ( [first_name] => Array ( [0] => Tom ) [last_name] => Array ( [0] => Auger) [nickname] => Array ( [0] => tomauger ) [description] => 等々.... )

参考: この例で返されたデータをアクセスするには、各キーに対して返された配列の要素を参照する必要があります。このように:

$last_name = $all_meta_for_user['last_name'][0];

これを避けるには、get_user_meta() の結果に簡単な array_map() を適用してキー毎の結果の先頭要素をアクセスするとよいでしょう。(これは $key を指定して $single を true にした場合の動作をエミュレートしたものです):

  $all_meta_for_user = array_map( function( $a ){
    return $a[0];
  }, get_user_meta( $user_id ) );

  print_r( $all_meta_for_user );

結果は:

Array ( [first_name] => Tom [last_name] => Auger [nickname] => tomauger [description] => 等々.... )

さらに、指定したユーザーのすべてのメタデータを取得した上で空の値を取り除くには、上の例で使った array_map() の結果に array_filter() を適用するとよいでしょう:

// $user_id のすべてのメタデータを取得
$meta = get_user_meta( $user_id );

// 空のメタデータを取り除く
$meta = array_filter( array_map( function( $a ) {
	return $a[0];
}, $meta ) );

参考

メタデータが存在するけれども値が空である場合に注意してください。その場合、メタデータが存在しないのと同様に空文字列(または空の配列)を返すからです。これはあなたのコードに予期せぬ動作を起こすかもしれません。例えばユーザーメタデータを空にセットすると、あなたのコードがユーザーにメタデータがまだ作られていないと判断して、update_user_meta() を使うべきところで add_user_meta() を使おうとするかもしれません。

ユーザーのプロフィール項目

ユーザーのプロフィール項目(管理画面 > ユーザーの編集)を取得するには、以下のキーを指定します。

rich_editing         : ビジュアルリッチエディターを使用しない
admin_color          : 管理画面の配色
comment_shortcuts    : コメントモデレーション用のキーボードショートカットを有効にする
show_admin_bar_front : サイトを見るときにツールバーを表示する
locale               : 言語
first_name           : 名
last_name            : 姓
nickname             : ニックネーム
description          : プロフィール情報


変更履歴

新規導入: 3.0

ソースファイル

get_user_meta()wp-includes/user.php にあります。

関連項目

add_user_meta(), delete_user_meta(), get_user_meta(), update_user_meta(), get_user_option() /en, delete_user_option() /en, update_user_option() /en,


関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function_Reference/get_user_meta最新版との差分