当サイト、Codex 日本語版は今後積極的な更新は行わない予定です。後継となる新ユーザーマニュアルは、https://ja.wordpress.org/support/ にあります。
万が一、当サイトで重大な問題を発見した際などは、フォーラムWordSlack #docs チャンネルでお知らせください。</p>

「関数リファレンス/get user meta」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(en:Function Reference/get_user_meta 07:43, 14 December 2016 Acafourek 版を流し込み。)
 
(和訳完了。)
1行目: 1行目:
{{NeedTrans}}
+
{{CheckTrans}}
  
 
== 説明<span id="Description"></span> ==
 
== 説明<span id="Description"></span> ==
  
Retrieve a single meta field or all fields of user_meta data for the given user. Uses [[関数リファレンス/get_metadata|get_metadata()]]. This function replaces the deprecated [https://developer.wordpress.org/reference/functions/get_usermeta/ <tt>get_usermeta()</tt>] function.
+
指定されたユーザーのメタデータを1つ、またはすべて取得します。内部で [[関数リファレンス/get_metadata|get_metadata()]] を使います。この関数は廃止された [https://developer.wordpress.org/reference/functions/get_usermeta/ <tt>get_usermeta()</tt>] の後継です。
  
 
== 使い方<span id="Usage"></span> ==
 
== 使い方<span id="Usage"></span> ==
  
  <?php get_user_meta($user_id, $key, $single); ?>
+
  <?php get_user_meta( $user_id, $key, $single ); ?>
  
 
== パラメータ<span id="Parameters"></span> ==
 
== パラメータ<span id="Parameters"></span> ==
  
{{Parameter|$user_id|integer|The ID of the user whose data should be retrieved.}}
+
{{Parameter|$user_id|整数|メタデータを取得するユーザーの ID。}}
{{Parameter|$key|string|The '''meta_key''' in the [[データベース構造#Table:_wp_usermeta|wp_usermeta table]] for the '''meta_value''' to be returned. If left empty, will return '''all''' user_meta fields for the given user.|optional|(empty string)}}
+
{{Parameter|$key|文字列|値('''meta_value''')を取得する [[データベース構造#Table:_wp_usermeta|wp_usermeta テーブル]] のキー('''meta_key''')。空文字列の場合、指定されたユーザーの'''すべての'''メタデータを返します。|オプション|(空文字列)}}
{{Parameter|$single|boolean|If true return value of meta data field, if false return an array. This parameter has no effect if <tt>$key</tt> is left blank.|optional|false}}
+
{{Parameter|$single|真偽値|true ならメタデータの値を、false なら配列を返します。もし <tt>$key</tt> が空文字列ならこのパラメーターは働きません。|オプション|false}}
  
 
== 戻り値<span id="Return Values"></span> ==
 
== 戻り値<span id="Return Values"></span> ==
  
; (mixed) : Will be an Array if $key is not specified or if $single is false.  Will be value of meta_value field if $single is true.
+
; (mixed) : $key が省略されるか $single false なら配列。$single true ならメタデータの値。
  
; NOTE: If the meta value does not exist and $single is true the function will return an empty string. If $single is false an empty array is returned.
+
: '''参考:''' 指定されたメタデータが存在しない場合、$single true なら、この関数は空文字列を返します。$single false なら空の配列を返します。
  
 
== 用例<span id="Examples"></span> ==
 
== 用例<span id="Examples"></span> ==
  
This example returns and then displays the last name for user id 9.
+
この例は ID が9のユーザーについて姓を取得して表示します。
 +
 
 
<pre>
 
<pre>
 
<?php  
 
<?php  
38行目: 39行目:
  
  
=== Getting all meta data<span id="Getting all meta data"></span> ===
+
=== すべてのメタデータを取得<span id="Getting all meta data"></span> ===
 +
 
 +
この例は <tt>$key</tt> を省略することにより、指定されたユーザー(この例では <tt>user_id</tt> が9)のすべてのメタデータを取得します。
  
This example demonstrates leaving the <tt>$key</tt> argument blank, in order to retrieve all meta data for the given user (in this example, <tt>user_id</tt> = 9):
 
 
<pre>
 
<pre>
 
<?php
 
<?php
47行目: 49行目:
 
?>
 
?>
 
</pre>
 
</pre>
Results:
+
 
 +
結果は:
 +
 
 
<pre>
 
<pre>
Array ( [first_name] => Array ( [0] => Tom ) [last_name] => Array ( [0] => Auger) [nickname] => Array ( [0] => tomauger ) [description] => etc.... )
+
Array ( [first_name] => Array ( [0] => Tom ) [last_name] => Array ( [0] => Auger) [nickname] => Array ( [0] => tomauger ) [description] => 等々.... )
 
</pre>
 
</pre>
'''Note:''' in order to access the data in this example, you need to dereference the array that is returned for each key, like so:  
+
 
 +
'''参考:''' この例で返されたデータをアクセスするには、各キーに対して返された配列の要素を参照する必要があります。このように:
 +
 
 
<pre>
 
<pre>
 
$last_name = $all_meta_for_user['last_name'][0];
 
$last_name = $all_meta_for_user['last_name'][0];
 
</pre>
 
</pre>
To avoid this, you may want to run a simple <tt>array_map()</tt> on the results of <tt>get_user_meta()</tt> in order to take only the first index of each result (this emulating what the <tt>$single</tt> argument does when <tt>$key</tt> is provided:
+
 
 +
これを避けるには、<tt>get_user_meta()</tt> の結果に簡単な <tt>array_map()</tt> を適用してキー毎の結果の先頭要素をアクセスするとよいでしょう。(これは <tt>$key</tt> を指定して <tt>$single</tt> を true にした場合の動作をエミュレートしたものです):
 +
 
 
<pre>
 
<pre>
   $all_meta_for_user = array_map( function( $a ){ return $a[0]; }, get_user_meta( $user_id ) );
+
   $all_meta_for_user = array_map( function( $a ){
 +
    return $a[0];
 +
  }, get_user_meta( $user_id ) );
  
 
   print_r( $all_meta_for_user );
 
   print_r( $all_meta_for_user );
 
</pre>
 
</pre>
Results:
+
 
 +
結果は:
 +
 
 
<pre>
 
<pre>
Array ( [first_name] => Tom [last_name] => Auger [nickname] => tomauger [description] => etc.... )
+
Array ( [first_name] => Tom [last_name] => Auger [nickname] => tomauger [description] => 等々.... )
 
</pre>
 
</pre>
Additionally, if you want to return ALL meta for a specific user and filter out empty values, you can run <tt>array_filter()</tt> on the results of the <tt>array_map()</tt> above:
+
 
 +
さらに、指定したユーザーのすべてのメタデータを取得した上で空の値を取り除くには、上の例で使った <tt>array_map()</tt> の結果に <tt>array_filter()</tt> を適用するとよいでしょう:
 +
 
 
<pre>
 
<pre>
// Get all user meta data for $user_id
+
// $user_id のすべてのメタデータを取得
 
$meta = get_user_meta( $user_id );
 
$meta = get_user_meta( $user_id );
  
// Filter out empty meta data
+
// 空のメタデータを取り除く
 
$meta = array_filter( array_map( function( $a ) {
 
$meta = array_filter( array_map( function( $a ) {
 
return $a[0];
 
return $a[0];
78行目: 92行目:
 
== 参考<span id="Notes"></span> ==
 
== 参考<span id="Notes"></span> ==
  
Please note that if the meta value exists but is empty, it will return an empty string (or array) as if the meta value didn't exist. This might cause unexpected behaviours in your code when you empty the user meta, your code can try to use add_user_meta instead of update_user_meta thinking the user does not have meta created yet.
+
メタデータが存在するけれども値が空である場合に注意してください。その場合、メタデータが存在しないのと同様に空文字列(または空の配列)を返すからです。これはあなたのコードに予期せぬ動作を起こすかもしれません。例えばユーザーメタデータを空にセットすると、あなたのコードがユーザーにメタデータがまだ作られていないと判断して、update_user_meta() を使うべきところで add_user_meta() を使おうとするかもしれません。
  
 
<!-- === Filters === -->
 
<!-- === Filters === -->
84行目: 98行目:
 
== 変更履歴<span id="Change_Log"></span> ==
 
== 変更履歴<span id="Change_Log"></span> ==
  
Since: [[Version 3.0|3.0]]
+
新規導入: [[Version 3.0|3.0]]
  
 
== ソースファイル<span id="Source_File"></span> ==
 
== ソースファイル<span id="Source_File"></span> ==
  
<tt>get_user_meta()</tt> is located in {{Trac|wp-includes/user.php}}.
+
<tt>get_user_meta()</tt> {{Trac|wp-includes/user.php}} にあります。
  
 
== 関連項目<span id="Related"></span> ==
 
== 関連項目<span id="Related"></span> ==

2017年5月7日 (日) 23:36時点における版

この項目「関数リファレンス/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() を使おうとするかもしれません。


変更履歴

新規導入: 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最新版との差分