get_user_meta() WP 3.0.0

Отримує окреме поле мета або всі цілі поля зазначеного користувача.

Якщо ключ не існує, функція поверне порожній рядок або порожній масив залежно від параметра $single.

Це може спричинити несподівану поведінку у вашому коді, коли ви спустошуєте метаполі користувача, ваш код може спробувати використовувати add_user_meta замість update_user_meta, думаючи, що у користувача ще немає мети.

Мета поля користувачів, це те ж саме, що й довільні поля для постів, тільки тут пост – це користувач, а довільне поле – мета поля користувача. Мета поля зберігаються в таблиці wp_usermeta , яка є тим самим, що і таблиця wp_postmeta для постів.

Працює на основі:
get_metadata()
1 раз – 0.000998 сек
(повільно) | 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

Приклади

0

#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
0

#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] => і т.д.
)
*/
0

#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() WP 6.0.2

function get_user_meta( $user_id, $key = '', $single = false ) {
	return get_metadata( 'user', $user_id, $key, $single);
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *