get_post()
Получает данные указанной или текущей записи (поста). Возвращает объект WP_Post.
Указывать нужно ID записи, иначе функция вернет текущую запись.
Запись берется по ID, поэтому тип записи может быть любой: вложение, пост, страница, произвольный тип. Если запись не указана, функция получит текущую запись из цикла (соответствующую глобальной переменной $post).
Не путайте с функцией get_posts(), которая получает данные нескольких записей.
ВАЖНО! get_post() без параметров возвращает глобальный объект $post! Проверено на версии WP 6.0.
Например:
global $post; $post = get_post( 1 ); echo $post->post_type; // post $some_post = get_post(); $some_post->post_type = 'my_post_type'; echo $post->post_type; // my_post_type
Другой пример. Допустим у нас уже определана глобальная переменная $post. Теперь, давайте запустим такой код:
$mypost = get_post(); $mypost->post_type = 'my_post_type'; global $post; echo $post->post_type; // my_post_type
До WP 3.5 первый параметр мог получать только переменную, прямая передача числа вызывала ошибку:
// Верно: передаем переменную, а не число $post_id = 7; $the_post = get_post( $post_id ); // Неверно (вызовет ошибку до версии WP 3.5): передаем число, а не переменную $the_post = get_post( 7 );
Хуков нет.
Возвращает
WP_Post|Массив|null
.
- WP_Post - когда удалось получить пост (запись) и $output = OBJECT.
array
- когда удалось получить пост (запись) и $output = ARRAY_A или ARRAY_N.null
- при неудаче.
Использование
$post = get_post( $post, $output, $filter );
- $post(число/WP_Post/null)
- ID поста, данные которого нужно получить.
По умолчанию: null (global $post) - $output(строка)
Флаг обозначающий в каком виде вернуть данные, может быть:
OBJECT
- данные вернутся в виде объектаARRAY_A
- данные вернутся в виде ассоциативного массиваARRAY_N
- данные вернутся в виде простого массива (без ключей)
По умолчанию: OBJECT
- $filter(строка)
- Как фильтровать пост. Смотрите описание функции sanitize_post_field() для полного списка значений. Может быть: 'raw', 'edit', 'db', или 'display'.
По умолчанию: raw
Примеры
#1 Возвращаемые данные
- ID(число)
- Идентификатор записи.
- post_author(число)
- Идентификатор автора записи.
- post_date(строка)
- Дата записи в формате YYYY-MM-DD HH:MM:SS (с учетом исправления времени).
- post_date_gmt(строка)
- Дата записи в формате YYYY-MM-DD HH:MM:SS (время по Гринвичу (GMT)).
- post_content(строка)
- Текст записи.
- post_title(строка)
- Заголовок записи.
- post_excerpt(строка)
- Цитата записи.
- post_status(строка)
- Статут записи, может быть: publish|pending|draft|private|static|object|attachment|inherit|future|trash.
- comment_status(строка)
- Возможность комментирования для записи, может быть: open|closed|registered_only.
- ping_status(строка)
- Статус пингов/трэкбэков, может быть: open|closed.
- post_password(строка)
- Пароль записи.
- post_name(строка)
- Имя записи (слаг). Название которое обычно используется в УРЛ-е.
- to_ping(строка)
- УРЛ-ы из статьи, на которые нужно отправить уведомления при обновлении поста.
- pinged(строка)
- УРЛ-ы из статьи, которые уже получили уведомления.
- post_modified(строка)
- Дата изменения записи в формате YYYY-MM-DD HH:MM:SS (с учетом корректировки времени).
- post_modified_gmt(число/строка)
- Дата изменения записи в формате YYYY-MM-DD HH:MM:SS (время по Гринвичу (GMT)).
- post_parent(число)
- ID родительской страницы (отлично от нуля у прикрепленных типов записей).
- guid(строка)
- Ссылка на запись. Важно: использовать этот параметр в качестве постоянной ссылки для поста неправильно, если версия вашего WordPress выше 2.5. Это уникальный идентификатор записи, который позднее стал ссылкой на запись.
- menu_order(число)
- Порядковый номер для построения меню (используется для постоянных страниц).
- post_type(строка)
- Тип записи (post|page|attachment).
- post_mime_type(строка)
- Миме тип записи (jpg|png|zip|pdf и т.д.). Используется для прикрепленных записей.
- comment_count(число)
- Количество комментариев у записи.
#2 Получаем данные поста с идентификатором 7 и получаем заголовок записи:
$post_id_7 = get_post( 7 ); $title = $post_id_7->post_title;
Получаем данные поста 7 в виде ассоциативного массива и "вытаскиваем" заголовок из массива:
$post_id_7 = get_post( 7, ARRAY_A ); $title = $post_id_7['post_title'];
Заметки
- Global. WP_Post. $post Global post object.
Список изменений
С версии 1.5.1 | Введена. |