試す:
<?php
$user_id = 1234;
$metas = array(
'nickname' => $userFirstName,
'first_name' => $userFirstName,
'last_name' => $userLastName ,
'city' => $userCityID ,
'gender' => $userGenderID
);
foreach($metas as $key => $value) {
update_user_meta( $user_id, $key, $value );
}
update_user_meta
したがって、の文字列引数のみを受け入れる配列を渡す代わりに、配列を$meta_key
ループして、配列内update_user_meta
の各キーと値のペアを呼び出します。
編集:
WordPress には、複数のメタを一度に更新する方法が組み込まれていません。組み込み関数を使用する理由の 1 つは、フィルタとフックを登録してメタ情報を操作できるからです。直接更新すると、これらは呼び出されません。
そうは言っても、次のようなことを試すことができます(コードはテストされていません):
$columns = implode(" = '%s', ", array_keys($metas)) . " = '%s'";
$values = array_values($metas);
$values[] = $user_id;
$table = _get_meta_table('user');
$sql = "UPDATE $table SET $columns WHERE user_id = %d";
$wpdb->query(
$wpdb->prepare($sql, $values)
);