get_metadata()
Получает метаданные указанного объекта (пост, комментарий, пользователь). Кэширует результат.
Это фундаментальная функция метаданных. Параметр $meta_type здесь отвечает за привязку к таблице базы данных, кэшу, хукам, а не к типу поста или чего-то еще. Поэтому для всех типов постов надо указывать post.
Не рекомендуется использовать эту функцию, если вы точно не знаете зачем используете именно её. У этой функции есть все необходимые обертки, в 99% случаев использовать нужно именно их:
Хуков нет.
Возвращает
Разное.
- Вернет
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.9
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 );
}