Описание функции get_posts()
Функция get_posts() получает массив записей на основе заданных параметров. Она позволяет фильтровать записи по различным критериям, таким как тип записи, статус, дата и т.д. Функция возвращает массив объектов WP_Post, что обеспечивает удобный доступ к свойствам записей, таким как заголовок, содержимое, дата публикации и метаданные.
Эта функция часто используется в темах и плагинах для вывода списков записей.
Параметры
$args
Тип: array
Обязательный: Нет
По умолчанию: array()
Описание: Массив аргументов для получения записей
Возможные значения:
post_type: post, page, custom_post_type
posts_per_page: Количество записей на странице
orderby: date, title, modified, menu_order
order: ASC, DESC
post_status: publish, pending, draft, private
category: ID категории
tag: slug тега
meta_query: Массив для фильтрации по пользовательским полям
Возвращаемое значение
Тип: array
Описание: Массив объектов WP_Post, представляющих записи
Возможные значения:
• Массив объектов WP_Post при успешном выполнении
• Пустой массив если записи не найдены
• WP_Error в случае ошибки
Примеры использования
Базовый пример получения всех записей
$posts = get_posts();
foreach($posts as $post) {
echo $post->post_title.', ';
}
Список всех записей в блоге, если не указаны параметры
Получение 5 последних записей, отсортированных по дате
$args = array(
'posts_per_page' => 5,
'orderby' => 'date',
'order' => 'DESC'
);
$posts = get_posts($args);
Отображение последних 5 записей блога
Проверка на наличие записей перед выводом
$posts = get_posts();
if (empty($posts)) {
echo 'Нет записей для отображения';
} else {
foreach($posts as $post) {
echo $post->post_title;', ';
}
}
Вывод сообщения, если записи отсутствуют
Вывод последних постов в теме
$args = array(
'post_type' => 'post',
'posts_per_page' => 3
);
$recent_posts = get_posts($args);
foreach($recent_posts as $post) {
setup_postdata($post);
echo ''.get_the_title().'
';
}
Использование setup_postdata() для работы с глобальными переменными
Безопасность
Валидация входных данных: Все параметры проходят валидацию внутри функции
Санитизация: Параметры автоматически очищаются WordPress
Рекомендации: При выводе данных используйте esc_html() для заголовков записей
— Связанные функции
Получает одну запись по ID
Выполняет запрос на выборку записей с изменением главного цикла
— Хуки
Фильтрует аргументы перед запросом записей
Фильтрует результаты после получения записей
— Примечания
– Ограничения
Не возвращает записи, не соответствующие параметрам
– Частые проблемы
- Пустой результат при неправильных параметрах
- Проблемы с фильтрацией при неверных настройках category/tag