get_metadata()
Отримує метадані вказаного об’єкта (пост, коментар, користувач). Кешує результат.
Це фундаментальна функція метаданих. Параметр $meta_type тут відповідає за прив’язку до таблиці бази даних, кешу, хуків, а не типу посту або чогось ще. Тому для всіх типів постів треба вказувати post
.
Не рекомендується використовувати цю функцію, якщо ви точно не знаєте, навіщо використовуєте саме її. Ця функція має всі необхідні обгортки, в 99% випадків використовувати потрібно саме їх:
(повільно) | 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
Приклади
#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);
нотатки
- Дивіться: get_metadata_raw()
- Дивіться: get_metadata_default()
список змін
З версії 2.9.0 | Введено. |
Код get_metadata() 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 ); }