В этой статье мы рассмотрим функцию get_posts()
в WordPress, которая используется для получения постов согласно заданным параметрам запроса.
Описание функции
Функция get_posts()
в WordPress возвращает массив объектов постов на основе заданных параметров запроса. Эта функция предоставляет гибкий способ получения постов без необходимости создавать объект запроса, как при использовании new WP_Query()
.
get_posts( $args )
Параметры:
$args
(массив|string) (обязательный): Массив параметров запроса или строка с параметрами запроса, аналогичными параметрам, которые можно передать вWP_Query
.
Возвращаемое значение:
- Массив объектов
WP_Post
.
Примеры использования
Рассмотрим несколько примеров использования функции get_posts()
.
Пример 1: Получение последних постов
$recent_posts = get_posts( array(
'posts_per_page' => 5,
) );
foreach ( $recent_posts as $post ) {
setup_postdata( $post );
// Вывод контента поста
the_title();
the_excerpt();
}
wp_reset_postdata(); // Восстановление оригинального объекта поста
В этом примере get_posts()
используется для получения пяти последних постов и вывода их заголовков и отрывков.
Дополнительные параметры get_posts():
author__in
: Идентификаторы авторовauthor__not_in
: Идентификаторы авторов, которые должны быть исключеныtag__in
: Идентификаторы теговtag__not_in
: Идентификаторы тегов, которые должны быть исключеныtax_query
: Запрос к таксономииmeta_key
: Ключ метаданныхmeta_value
: Значение метаданныхorderby
: Порядок сортировкиorder
: Направление сортировкиdate_query
: Запрос к дате
Пример 2: Получение постов по категории
$category_posts = get_posts( array(
'category' => 1, // ID категории
'posts_per_page' => 3,
) );
foreach ( $category_posts as $post ) {
setup_postdata( $post );
// Вывод контента поста
the_title();
the_excerpt();
}
wp_reset_postdata(); // Восстановление оригинального объекта поста
Здесь get_posts()
используется для получения трех последних постов из определенной категории.
Чем get_posts() отличается от query_posts()?
get_posts()
и query_posts()
— это функции WordPress, используемые для извлечения записей. Однако между ними есть несколько ключевых отличий:
- get_posts() не изменяет глобальную переменную
$wp_query
: В отличие отquery_posts()
,get_posts()
не изменяет глобальную переменную$wp_query
, что делает ее более безопасной для использования в пользовательских шаблонах. - get_posts() возвращает массив записей:
get_posts()
возвращает массив объектовWP_Post
, каждый из которых представляет собой запись.query_posts()
не возвращает никакого значения. - get_posts() более гибкая:
get_posts()
позволяет использовать более широкий спектр параметров для фильтрации записей, чемquery_posts()
.
Зачем использовать get_posts()
?
- Простота использования: Функция
get_posts()
предоставляет простой и удобный способ получения постов без необходимости создавать объект запросаWP_Query
. - Гибкость: Можно задавать различные параметры запроса, такие как категория, количество постов и другие.
Заключение
Функция get_posts()
в WordPress является удобным инструментом для получения постов на основе заданных параметров запроса. Она позволяет легко и гибко работать с постами без создания объекта WP_Query
. Примеры использования выше демонстрируют, как можно получить посты с помощью get_posts()
и вывести их содержимое.