get_post() — возвращает всю информацию о конкретной записи

Возвращает всю инфу, содержащуюся в базе данных (таблица 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 );
Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.