Возвращает всю инфу, содержащуюся в базе данных (таблица wp_posts
) об указанном в параметрах посте (любого типа, то есть это может быть страница page
, запись post
или какой-либо произвольный тип записи).
get_post( $post = null, $output = OBJECT, $filter = 'raw' ); |
- $post
- (целое число|объект) ID конкретного поста или его объект, по умолчанию — текущий пост
- $output
- (строка) формат получаемых данных:
- OBJECT — в виде объекта,
- ARRAY_A — ассоциативный массив,
- ARRAY_N — нумерованный массив;
- $filter
- (строка)
Параметры объекта поста WP_Post
То есть в этом случае $output = OBJECT
. Каждый из параметров соответствует столбцу из таблицы MySQL.
- ID
- (целое число) ID поста
- post_author
- (целое число) ID автора поста
- post_date
- (строка) дата и время публикации поста в формате
YYYY-MM-DD HH:MM:SS
- post_date_gmt
- (строка) дата и время (GMT) публикации поста в формате
YYYY-MM-DD HH:MM:SS
- post_content
- (строка) контент (содержимое) поста
- post_title
- (строка) заголовок
- post_category
- (строка) по идее это ID рубрики, к которой относится пост, однако с версии WordPress 2.1 всегда равно 0, чтобы определить рубрики, воспользуйтесь функцией get_the_category().
- post_excerpt
- (строка) содержимое поля «Цитата»
- post_status
- (строка) статус поста
- comment_status
- (строка) настройки комментирования
- ping_status
- (строка) разрешены ли трэкбэки и пингбэки
- post_password
- (строка) пароль к посту
- post_name
- (строка) ярлык поста
- to_ping
- (строка) URL для пинга
- pinged
- (строка) URL, которые уже пингнуты
- post_modified
- (строка) дата и время последнего обновления(редактирования) поста в формате
YYYY-MM-DD HH:MM:SS
- post_modified_gmt
- (строка) дата и время GMT последнего обновления(редактирования) поста в формате
YYYY-MM-DD HH:MM:SS
- post_content_filtered
- (строка)
- post_parent
- (целое число) ID родительского поста (например для вложений или страниц)
- guid
- (строка) ссылка на пост вида
https://misha.blog/?p=8542
- menu_order
- (целое число)
- post_type
- (строка) тип поста
- post_mime_type
- (строка) MIME тип (для вложений)
- comment_count
- (целое число) количество комментариев к посту
Теперь возьмем для примера пост про WP_Query и выведем всю инфу о нем. Если к параметру не оставлено комментариев в этом листинге кода — значит он пустой для данного поста, post_content
я разумеется сократил.
echo $post->ID; // 1285 echo $post->post_author; // 1 echo $post->post_date; // 2012-12-09 05:55:07 echo $post->post_date_gmt; // 2012-12-09 01:55:07 echo $post->post_content; // Про класс WP_Query можно сказать в двух словах - бла бла бла echo $post->post_title; // WP_Query(), описание класса, параметры print_r( $post->post_category ); // Array ( [3] => 3 ) echo $post->post_excerpt; echo $post->post_status; // publish echo $post->comment_status; // open echo $post->ping_status; // open echo $post->post_password; echo $post->post_name; // wp_query echo $post->to_ping; echo $post->pinged; echo $post->post_modified; // 2012-12-09 12:46:24 echo $post->post_modified_gmt; // 2012-12-09 08:46:24 echo $post->post_content_filtered; echo $post->post_parent; // 0 echo $post->guid; // https://misha.blog/blog/?p=1285 echo $post->menu_order; // 0 echo $post->post_type; // post echo $post->post_mime_type; // echo $post->comment_count; // 18 |
Примеры использования
Предлагаю разобраться с форматом вывода. Итак, зная ID поста, выведем например его статус и заголовок. Пример, когда возвращается объект:
$my_post = get_post( 5 ); echo $my_post->post_status; echo $my_post->post_title; |
Ассоциативный массив:
$my_post = get_post( 5, ARRAY_A ); echo $my_post['post_status']; echo $my_post['post_title']; |
В случае с нумерованным массивом нужно заранее знать индексы соответствующих значений. Их можно выяснить например при помощи php-функции print_r()
.
$my_post = get_post( 5, ARRAY_N ); echo $my_post[7]; echo $my_post[11]; |
Важно: указывать ID поста в виде целого числа стало возможно только после версии WordPress 3.5. До этого ID поста нужно было передавать только в переменной, то есть:
$post = 5; $my_post = get_post( $post ); |
Источник: misha.blog