Как обновить метафайл пользователя для нескольких meta_key в wordpress

Я пытаюсь обновить несколько meta_key для пользователя в WordPress

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 ); } 

Поэтому вместо передачи массива в 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) );