get_user_meta()
Отримує окреме поле мета або всі цілі поля зазначеного користувача.
Якщо ключ не існує, функція поверне порожній рядок або порожній масив залежно від параметра $single
.
Це може спричинити несподівану поведінку у вашому коді, коли ви спустошуєте метаполі користувача, ваш код може спробувати використовувати add_user_meta замість update_user_meta, думаючи, що у користувача ще немає мети.
Мета поля користувачів, це те ж саме, що й довільні поля для постів, тільки тут пост – це користувач, а довільне поле – мета поля користувача. Мета поля зберігаються в таблиці wp_usermeta , яка є тим самим, що і таблиця wp_postmeta для постів.
get_metadata()
(повільно) | 50000 разів – 0.09 сек
(швидкість світла) |
PHP 7.1.2, WP 4.7.5
Хуків немає.
Повертає
Разное
.
Повертає
false
, якщо параметр $user_id неправильно передано.Якщо $single = true
string/array
– Якщо метаполі існує.''
– Коли метаполі не існує.
- Якщо $single = false
массив всех значений метаполя
– коли метаполі існує.array()
– Коли метаполі не існує.
Якщо зберігається число, воно буде повернено у вигляді числового рядка, наприклад, '54'
.
Використання
get_user_meta($user_id, $key, $single);
-
$user_id
(число) (обов’язковий) - ID користувача, дані якого потрібно отримати.
-
$key
(рядок) -
Ключ є мета поля, дані якого потрібно отримати. Якщо залишити цей параметр порожнім, то буде повернуто всі цілі поля користувача.
За замовчуванням: ” -
$single
(логічний) -
Якщо встановити true, то функція поверне значення мета поля, якщо залишити false, то значення мета поля буде повернуто в масиві. Цей параметр немає сенсу, якщо параметр $key не було вказано.
Типово: false
Приклади
#1 Приклад використання
Цей приклад отримає і потім виведе на екран Нік користувача з ID = 9:
$user_id = 9; $key = 'nickname'; $meta_val = get_user_meta($user_id, $key, true); echo sprintf( 'Значення ключа %s у користувача %d одно: %s', $key, $user_id, $meta_val ); // Отримаємо: // Значення ключа nickname у користувача 9 одно: Enot
#2 Отримання всіх метаданих
Цей приклад показує що буде якщо $key залишити порожнім, щоб отримати всі метаданих вказаного користувача:
$all_meta_for_user = get_user_meta(9); /* $all_meta_for_user міститиме масив: Array ( [first_name] => Array ( [0] => Tom ) [last_name] => Array ([0] => Auger) [nickname] => Array ([0] => tomauger) [description] => і т.д. ) */
Щоб отримати дані з цього прикладу, вам потрібно отримувати перший елемент масиву так:
$last_name = $all_meta_for_user['last_name'][0];
Щоб уникнути цієї незручності, можна краще застосувати свою функцію до одержуваного масиву, використовуючи array_map() :
$all_meta_for_user = array_map( function( $a ){ return $a[0]; }, get_user_meta( $user_id ) ); /* Тепер $all_meta_for_user міститиме такий масив: Array ( [first_name] => Tom [last_name] => Auger [nickname] => tomauger [description] => і т.д. ) */
#3 Перевірка, що мета-поле існує
// для single значення $ value = get_user_meta (76, 'key_1', true); if( '' !== $value ){ // мета-поле є } // для multiple значення $ value = get_user_meta( 76, 'key_1' ); if( [] !== $value ){ // мета-поле є }
список змін
З версії 3.0.0 | Введено. |
Код get_user_meta() get user meta WP 6.0.2
function get_user_meta( $user_id, $key = '', $single = false ) { return get_metadata( 'user', $user_id, $key, $single); }