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