get_metadata() WP 2.9
Получает метаданные указанного объекта (пост, комментарий, пользователь). Кэширует результат.
Хуки из функции
Возвращает
Строку/массив.
Если в значении метаполя хранится число оно будет возвращено в виде строки, например, "54"...
- Вернет false, если неправильно переданы
$meta_type
или$object_id
. - При
$single = true
- строка/массив — когда метаполе есть.
- '' — когда метаполя нет.
- При
$single = false
- массив значений метаполей — когда метаполе есть.
- array() — когда метаполя нет.
Использование
get_metadata( $meta_type, $object_id, $meta_key, $single );
- $meta_type(строка) (обязательный)
- Тип объекта, метаданные которого нужно получить. Может быть: post, page, comment, user и т.д.
По умолчанию: нет - $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 );
Список изменений
С версии 2.9.0 | Введена. |
Код get metadata:
wp-includes/meta.php
WP 5.3
Cвязанные функции
Из метки: metadata (метаданные)
- add_comment_meta()
- add_metadata()
- add_post_meta()
- add_term_meta()
- add_user_meta()
- delete_comment_meta()
- delete_metadata()
- delete_post_meta()
- delete_term_meta()
- delete_user_meta()
- get_comment_meta()
Добрый день. Функция get_user_meta() получает метаданные указанного пользователя. Есть ли какая нибудь функция , которая получает все существующие метаполя по ключу поля без привязки к пользователю. У меня есть пользователи, у некоторых пользователей есть определенные метаполя. Как выбрать эти мета поля с учетом того, что их может быть по несколько на одного пользователя?
Пробовал через wp_user_query и meta_query. Выбирал role=>contributor,
При этом он находит поля, но при попытке вывода из массива информацию берет только из каждой первой записи каждого пользователя.
Помогите решить проблему, пожалуйста
Я не знаю такую функцию. Здесь проще обычным sql запросом так:
Добрый день! У меня такая задача, есть произвольное поле, для каждого поста, на отдельном типе странице "audiopage" id поля "author"
Как мне на этой странице, вне цикла вордпресс вывести значения со всех постов из этого поля. Грубо говоря, мне нужно в виде html списка вывести всех авторов.
Функции для этого в ВП нет... Тут наверное лучше сделать отдельный запрос в таблицу wp_postmeta и получить все данные по полю
meta_key='author'
- это будет наиболее быстрый запрос...Другой вариант это через wp_query получить все посты с таким полем, потом пройтись по всем постам и с помощью get_post_meta() вывести все значения этих полей...
Тимур, помогите, пожалуйста, написать такой запрос в БД. Моих знаний , к сожалению, пока не хватает. Самое главное, результаты должны оборачиваться в тег
Подразумевается, что такое поле есть у одного типа записи, потому что мы просматриваем вообще все метаполя, не важно какой тип записи...