我正在尝试为WordPress中的用户更新多个meta_key
update_user_meta( $user_id, array( 'nickname' =>
$userFirstName, 'first_name' =>
$userFirstName, 'last_name' =>
$userLastName , 'city' =>
$userCityID , 'gender' =>
$userGenderID) );
但它不起作用。我们如何为用户更新多个meta_key?
#1尝试:
<
?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, 而是遍历数组并为数组中的每个键/值对调用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)
);
#2只需尝试使用相同的meta键添加该值, 并记住将第三个值设置为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 );
【如何在WordPress中更新多个meta_key的用户元】然后, 当你使用meta键获取用户meta时, 它将返回:
['$value1', '$value2', '$value3']
推荐阅读
- 如何使用Timber模板引擎将CSS中的ACF图像字段与媒体查询一起使用()
- M386AAG40MMB-CVFC0内存条
- 第十三周
- CentOS7最小化安装后安装图形界面操作
- 好记性不如烂笔头:centos 7 分区,挂载,
- 云服务器部署k3s
- CDH快速安装2-web安装
- 阿里云镜像切换阿里巴巴开源镜像站镜像——Debian镜像
- java的jdk1.8快速安装