get_post — функция вывода записи WordPress

Для того что бы получить из базы данных всё данные определённой записи нам необходимо использовать функцию WordPress get_post(). Данная функция принимает два параметра. Первый из параметров — $post позволяет нам определить данные какой именно записи мы получим из базы данных. Второй же параметр (флаг) — $output служит для определения того, в каком виде мы получим результаты работы нашей функции get_post, а именно: в виде простого массива, ассоциативного массива, или же в виде объекта (по умолчанию).

Пример использования функции get_post

1
2
3
4
<?php 
	$post = 1;
	get_post($post); 
?>

Данный код позволит нам получить все данные записи 1 в виде объекта.

Обратите внимание, что номер записи в функцию get_post должен передаваться как переменная, в противном случае это приведёт к ошибке:

1
2
3
4
<?php 
	get_post($post = 1, $output); // правильно
	get_post(1, $output); // не правильно
?>

Получение данных записи WordPress в виде массива или объекта

Как мы уже говорили, второй принимаемый параметр функции get_post, позволяет нам определить в каком виде мы получим данные о запрашиваемой записи. С помощью этого параметра мы можем получить данные в виде:

  • ARRAY_N — получим данные в виде простого массива;
  • ARRAY_A — получим данные как ассоциативный массив;
  • OBJECT — получим объект с всеми данными;

Давайте посмотрим на примере:

1
2
3
4
5
<?php 
	get_post($post=1, OBJECT); // возвращает объект
	get_post($post=1, ARRAY_N); // возвращает простой массив
	get_post($post=1, ARRAY_A); // возвращает ассоциативный массив
?>

Какие данные мы можем получить с помощью get_post

После того как мы сделали запрос в базу данных с помощью функции WordPress — get_post, мы получим следующие данные:

  • ID — Номер ID записи;
  • post_author — Идентификатор автора запрашиваемой записи;
  • post_date — Дата создания запрашиваемой записи в виде YYYY-MM-DD HH:MM:SS;
  • post_date_gmt — Дата создания запрашиваемой записи по Гринвичу — YYYY-MM-DD HH:MM:SS;
  • post_modified — Дата последнего изменения запрашиваемой записи в виде YYYY-MM-DD HH:MM:SS;
  • post_modified_gmt — Дата последнего изменения запрашиваемой записи по Гринвичу YYYY-MM-DD HH:MM:SS;
  • post_content — Сам текст (контент) запрашиваемой записи;
  • post_title — Заголовок запрашиваемой записи;
  • post_excerpt — Анонс (вводный текст) запрашиваемой записи;
  • post_status — Статут запрашиваемой записи, который может быть: private, publish, inherit, pending, draft, static, future, object, attachment, trash;
  • comment_status — Можно ли комментировать запись, ответ может быть: closed, open, registered_only;
  • ping_status — Статус трэкбэков/пингов запрашиваемой записи, может быть следующим: closed, open;
  • post_password — Пароль запрашиваемой записи;
  • post_name — Слаг записи — название которое указывается в ЧПУ адресе записи(home иди about и т.п.);
  • to_ping — URL из записи, на которые необходимо отправить уведомления в случае обновлении записи;
  • pinged — URL из записи, которыми уже было получено уведомление об обновлении;
  • post_parent — ID идентификатор родительской страницы записи;
  • guid — Ссылка на запрашиваемую запись;
  • menu_order — Порядковый номер записи для создания меню WordPress;
  • post_type — Тип запрашиваемой записи. Может быть: page, post, attachment;
  • post_mime_type — MIME-тип запрашиваемой записи. К примеру: zip, png, gif, pdf, jpg;
  • comment_count — Кол-во комментариев запрашиваемой записи;

Пример вывода данных с помощью функции get_post

1
2
3
4
5
<?php 
	$post = get_post($post_id = 1); // Записываем все данные записи 1 в объект $post
	echo '<h1>'.$post->post_title.'</h1>'; // Выводим заголовок записи;
	echo '<p>'.$post->post_content.'</p>'; // Выводим контент записи;
?>

Как видите использование функции WordPress — get_post() очень просто.

Комментариев к записи: 9

  1. Все работает, но почему вместе с контентом выводится php код?

    Я использую плагин Exec-PHP с помощью которого можно добавлять php коды к записям.

  2. Александр:

    А как вызвать миниатюру по ID записи?
    Можно на примере так же рассмотреть?

    • ДимаС:

      < ?php echo get_the_post_thumbnail(get_the_ID()); //Выведет миниатюру текущей записи //или так echo get_the_post_thumbnail('77'); //Выведет миниатюру записи с ID 77 ?>

  3. Yaroslav:

    И почему-то, в записях по этому примеру не работает шорткоды.

    • ДимаС:

      Хм… Должно работать. Можно попробовать указать вывод определённого поста через query_posts(), а дальше стандартный цикл оставить. Попробуй, может так будет работать.

  4. Yaroslav:

    Спасибо тебе большое, всякие разные способы перепробовал, всё не то, а тут всё легко и просто.

  5. Спасибо за код.

    У вас опечатка в последнем примере:
    $get_post($post_id = 1)
    , правильно написать без знака «$»:
    get_post($post_id = 1)

Оставить комментарий


3 + восемь =