get_metadata() WP 2.9.0

Отримує метадані вказаного об’єкта (пост, коментар, користувач). Кешує результат.

Це фундаментальна функція метаданих. Параметр $meta_type тут відповідає за прив’язку до таблиці бази даних, кешу, хуків, а не типу посту або чогось ще. Тому для всіх типів постів треба вказувати post.

Не рекомендується використовувати цю функцію, якщо ви точно не знаєте, навіщо використовуєте саме її. Ця функція має всі необхідні обгортки, в 99% випадків використовувати потрібно саме їх:

1 раз – 0.0005281 сек
(повільно) | 50000 разів – 0.14 сек
(дуже швидко) |
PHP 7.4.25, WP 6.0

Хуків немає.

Повертає

Разное.

  • Поверне false, якщо неправильно передано $meta_type або $object_id (не-numeric, 0 чи негативне значення).
  • При $single = true
    • строка/массивколи метаполі є.
    • ''коли метаполя немає.
  • $ single = false
    • массив значений метаполейколи метаполі є.
    • array()коли метаполя немає.

Якщо у значенні метаполя зберігається число воно буде повернено у вигляді рядка, наприклад, "54"

Використання

get_metadata( $meta_type, $object_id, $meta_key, $single );
$meta_type
(рядок) (обов’язковий)

Тип об’єкта, метаданого якого потрібно отримати. Може бути:

  • post– Для всіх типів постів, таблиця wp_postmeta .
  • term– Для всіх елементів таксономій, таблиця wp_termmeta .
  • comment– Для всіх типів коментарів, таблиця wp_commentmeta .
  • user– Для користувачів, таблиця wp_usermeta .
  • custom_type– Своя таблиця метаданих.
$object_id
(число) (обов’язковий)
ID типу об’єкта, вказаного в
$meta_type , метадані якого потрібно отримати. Наприклад, тут пишемо ID посту, якщо тип post.
$meta_key
(рядок)
Назва ключа метаполя. Якщо не вказати цей параметр, буде повернено всі значення всіх метаполів об’єкта.


За замовчуванням: ”
$single
(логічний)

true– Поверне значення метаполя у вигляді рядка або масиву (якщо у значенні метаполя знаходиться серіалізований масив). За наявності кількох метаполів з однаковим ключем повернеться значення першого метаполя.

false– Повернеться масив зі значеннями всіх метаполів зазначеного ключа. У цьому випадку всі значення буде рядками, навіть коли в значенні знаходиться серіалізований масив (перетворювати його на масив потрібно буде вручну).

Якщо значення довільного поля знаходиться серіалізований масив, то значення trueповерне, нормальний масив, і якщо вказати false, то повернеться масив, де у ключі ” [0] ” лежатиме той самий серіалізований масив.

Цей параметр працює тільки якщо вказано параметр $key!

Типово: false

Приклади

0

#1 Висновок метаданих різних типів

Декілька прикладів, якими можна вивести метадані постів, користувачів та коментарів. Тобто. це альтернативи відповідних функцій ОП: get_post_meta(), get_user_meta(), get_comment_meta().

// Отримаємо довільне поле посту 17, відразу змінну
$post_meta = get_metadata( 'post', 17, 'robots', true );

// Отримаємо Нік користувача 14
$user_meta = get_metadata( 'user', 14, 'nickname', 1 );

// Отримаємо всі метадані коментаря 115, як масиву.
$ comment_meta = get_metadata ( 'comment', 115);

нотатки

список змін

З версії 2.9.0Введено.

Код get_metadata() WP 6.0.2

function get_metadata( $meta_type, $object_id, $meta_key = '', $single = false ) {
	$value = get_metadata_raw( $meta_type, $object_id, $meta_key, $single );
	if ( ! is_null( $value ) ) {
		return $value;
	}

	return get_metadata_default( $meta_type, $object_id, $meta_key, $single );
}

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

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