WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

get_metadata() WP 2.9

Получает метаданные указанного объекта (пост, комментарий, пользователь). Кэширует результат.

Это фундаментальная функция метаданных. Параметр $meta_type здесь отвечает за привязку к таблице базы данных, кэшу, хукам, а не к типу поста или чего-то еще. Поэтому для всех типов постов надо указывать post.

Не рекомендуется использовать эту функцию, если вы точно не знаете зачем используете именно её. У этой функции есть все необходимые обертки, в 99% случаев использовать нужно именно их:

1 раз = 0.00013с = быстро | 50000 раз = 1.0с = очень быстро

Хуков нет.

Возвращает

Строку/массив.

Если в значении метаполя хранится число оно будет возвращено в виде строки, например, "54"...

  • Вернет false, если неправильно переданы $meta_type или $object_id.
  • При $single = true
    • строка/массив — когда метаполе есть.
    • '' — когда метаполя нет.
  • При $single = false
    • массив значений метаполей — когда метаполе есть.
    • array() — когда метаполя нет.

Использование

get_metadata( $meta_type, $object_id, $meta_key, $single );
$meta_type(строка) (обязательный)

Тип объекта, метаданные которого нужно получить. Может быть:

  • post - для всех типов постов, таблица wp_postmeta.
  • comment - для всех типов комментариев, таблица wp_commentmeta.
  • user - для юзеров, таблица wp_usermeta.
  • custom_type - своя таблица метаданных.
$object_id(число) (обязательный)
ID типа объекта, указанного в $meta_type, метаданные которого нужно получить. Например, тут пишем ID поста, если тип post.
$meta_key(строка)
Название ключа метаполя. Если не указать этот параметр, будут возвращены все значения всех метаполей объекта.
По умолчанию: ''
$single(логический)

true — вернет значение метаполя в виде строки или массива (если в значении метаполя находится сериализованный массив). При наличии нескольких метаполей с одинаковым ключом, вернется значение первого метаполя.

false — будет возвращен массив со значениями всех метаполей указанного ключа. В этом случае все значения будет строками, даже когда в значении находится сериализованный массив (преобразовывать его в массив нужно будет вручную).
По умолчанию: 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() WP 5.5.1

wp-includes/meta.php
<?php
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 );
}

Cвязанные функции

Из метки: metadata (метаданные)

Еще из раздела: Метаданные

11 комментов
Полезные 2 Все