Функция get_post() является одной из важнейших функций в WordPress, позволяя вам легко получать информацию о конкретном посте, включая его содержание, заголовок, автора, дату публикации и другие метаданные. Она используется для отображения информации о посте в различных шаблонах и элементах темы.
get_post( int|WP_Post|null $post = null, bool $output = OBJECT, string $filter = 'raw' )
Параметры
- $post (int|WP_Post|null): (Необязательный) ID поста или объект WP_Post. По умолчанию — текущий пост в цикле.
- $output(bool|constant): (Необязательный) Тип возвращаемого результата. По умолчанию —
OBJECT
. Допустимые значения:OBJECT
— возвращает объект WP_Post.ARRAY_A
— возвращает ассоциативный массив.ARRAY_N
— возвращает числовой массив.
- $filter (string): (Необязательный) Как фильтровать данные поста. По умолчанию —
raw
.
Возвращаемое значение
- (WP_Post|array|false): Объект WP_Post или массив данных поста в случае успеха, или
false
в случае неудачи.
Пример 1: Получение информации о посте по ID
$post_id = 123; // ID поста
$post = get_post( $post_id );
if ( $post ) {
echo 'ID поста: ' . $post->ID . '<br>';
echo 'Заголовок поста: ' . $post->post_title . '<br>';
echo 'Автор поста: ' . $post->post_author . '<br>';
echo 'Дата публикации поста: ' . $post->post_date . '<br>';
echo 'Содержание поста: ' . $post->post_content . '<br>';
} else {
echo 'Пост не найден.';
}
Пример 2: Проверка, является ли пост страницей
$post_id = 123; // ID поста
$post = get_post( $post_id );
if ( $post->post_type === 'page' ) {
echo 'Это страница.';
} else {
echo 'Это не страница.';
}
Пример 3: Получение изображения поста
$post_id = 123; // ID поста
$post = get_post( $post_id );
if ( has_post_thumbnail( $post ) ) {
$image_id = get_post_thumbnail_id( $post );
$image_url = wp_get_attachment_url( $image_id );
echo '<img src="' . $image_url . '" alt="' . $post->post_title . '" />';
} else {
echo 'У этого поста нет изображения.';
}
Дополнительные параметры:
- ‘post_status’: Фильтрует по статусу публикации (например, ‘publish’, ‘pending’, ‘draft’).
- ‘numberposts’: Ограничивает количество возвращаемых постов.
- ‘offset’: Указывает смещение постов (например, для отображения постов со страницы 2).
- ‘order’: Устанавливает порядок сортировки постов (например, ‘ASC’, ‘DESC’).
- ‘orderby’: Задает поле сортировки постов (например, ‘post_date’, ‘post_title’).
Использование get_post() с WP_Query:
Функция get_post()
может использоваться вместе с классом WP_Query для создания более сложных запросов к постам.
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'order' => 'DESC',
'orderby' => 'date',
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
echo '<a href="' . get_the_permalink() . '">' . get_the_title() . '</a><br>';
}
wp_reset_postdata();
} else {
echo 'Постов не найдено.';
}
Заключение:
Функция get_post()
является мощным инструментом для работы с постами в WordPress. Она позволяет вам легко получать информацию о конкретном посте, а также использовать ее в различных шаблонах и элементах темы.