Fad*_*adi 6 php wordpress wordpress-theming meta-key
我正在尝试为WordPress中的用户更新多个meta_key
update_user_meta( $user_id, array( 'nickname' => $userFirstName, 'first_name' => $userFirstName, 'last_name' => $userLastName , 'city' => $userCityID , 'gender' => $userGenderID) );
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我们如何为用户更新多个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 );
}
Run Code Online (Sandbox Code Playgroud)
因此,不是将您的数组传递给update_user_meta只接受字符串参数的数组,而是$meta_key遍历数组并调用数组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)
);
Run Code Online (Sandbox Code Playgroud)
小智 5
只需尝试使用相同的元键添加值,并记住将第三个值设置为 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 );
Run Code Online (Sandbox Code Playgroud)
然后当您使用元键获取用户元数据时,它将返回如下:
['$value1','$value2','$value3']
Run Code Online (Sandbox Code Playgroud)