如何在 wordpress 中更新多个 meta_key 的用户元数据
How to update user meta for multiple meta_key in wordpress
我正在尝试为 WordPress
中的用户更新多个 meta_key
update_user_meta( $user_id, array( 'nickname' => $userFirstName, 'first_name' => $userFirstName, 'last_name' => $userLastName , 'city' => $userCityID , 'gender' => $userGenderID) );
但它不起作用。我们如何为用户更新多个 meta_key?
尝试:
<?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 );
}
因此,与其将数组传递给仅接受 $meta_key
的字符串参数的 update_user_meta
,不如循环遍历数组并为每个 key/value 对调用 update_user_meta
数组。
编辑:
WordPress 没有提供一次更新多个元数据的内置方法。使用其内置功能的部分原因是因为可以注册过滤器和挂钩以对元信息进行操作。如果您直接更新它们,则不会调用这些。
就是说,您可以尝试这样的操作(代码未经测试):
$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)
);
只需尝试添加具有相同元键的值,并记得将第三个值设置为 false 就像
add_user_meta( $user_id , $meta_key , $value1 , false );
add_user_meta( $user_id , $meta_key , $value2 , false );
add_user_meta( $user_id , $meta_key , $value3 , false );
然后当您使用元键获取用户元时,它将return像:
['$value1','$value2','$value3']
我正在尝试为 WordPress
中的用户更新多个 meta_keyupdate_user_meta( $user_id, array( 'nickname' => $userFirstName, 'first_name' => $userFirstName, 'last_name' => $userLastName , 'city' => $userCityID , 'gender' => $userGenderID) );
但它不起作用。我们如何为用户更新多个 meta_key?
尝试:
<?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 );
}
因此,与其将数组传递给仅接受 $meta_key
的字符串参数的 update_user_meta
,不如循环遍历数组并为每个 key/value 对调用 update_user_meta
数组。
编辑:
WordPress 没有提供一次更新多个元数据的内置方法。使用其内置功能的部分原因是因为可以注册过滤器和挂钩以对元信息进行操作。如果您直接更新它们,则不会调用这些。
就是说,您可以尝试这样的操作(代码未经测试):
$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)
);
只需尝试添加具有相同元键的值,并记得将第三个值设置为 false 就像
add_user_meta( $user_id , $meta_key , $value1 , false );
add_user_meta( $user_id , $meta_key , $value2 , false );
add_user_meta( $user_id , $meta_key , $value3 , false );
然后当您使用元键获取用户元时,它将return像:
['$value1','$value2','$value3']