Usermetaテーブルから各ユーザーの姓名、電話番号、電子メールアドレス、および住所を取得しようとしています。単一のSQLクエリを使用して、それぞれが独自のmeta_keyを持つ複数のmeta_valuesを選択するのに問題があります。
データが以下のように返されるようにします。
姓、名、電話、アドレス、Eメール姓、名、電話、アドレス、Eメール名、姓、電話、アドレス、Eメール姓、姓、電話、アドレス、Eメール
私はphpMyAdminを介して実際のDBにアクセスできるので、mySqlクエリの助けを借りたいです。
キーを指定せずにget_user_meta
を呼び出すだけで、ユーザーのすべてのMetaValuesが返されます。
$userdata = get_user_meta( $userID );
array
に返されるので、Metavalueの表示タイトルのマッピングを行う必要があるかもしれません。ここでkeys
はあなたのmetakeys
のデータベース値です。
たとえば、
$userdata['f711_email_first_name']
テーブルにこれらすべての要素を表示したい場合は、次のようにarray
を作成します。
$displaytitles = array(
'f711_email_first_name' => 'Email first name',
...
);
$userdata
をループ処理すると、次のように出力されます。
foreach ( $userdata as $thisdata => $value ) {
echo $displaytitles[$thisdata] . ': ' . $value[0];
}
もし私があなたの靴の中にいたら、 get_user_meta()
を使います。
// get the users -- I'm ordering them by their username
$args = array(
'orderby' => 'login',
'order' => 'ASC',
);
$users = get_users( $args );
foreach( $users as $user ) {
$user_meta = get_user_meta( $user->ID );
var_dump( $user_meta ); // to show you what you've got
}
これはとても単純な例です。実生活では、おそらくget_user_meta()
が返す配列をループして、var_dump()
よりもはるかにきれいに表示したいでしょう。