Описание функции WP_Date_Query()
Функция WP_Date_Query() используется для создания запросов, основанных на датах. Она позволяет фильтровать записи по различным временным критериям, таким как дата публикации, дата изменения и другие временные метаданные.
WP_Date_Query удобна для использования в WP_Query и других запросах, где требуется фильтрация по времени.
Параметры
$args
Тип: array
Обязательный: Нет
По умолчанию: array()
Описание: Массив аргументов для настройки дат в запросе
Возможные значения:
after: Дата начала (строка или объект DateTime)
before: Дата окончания (строка или объект DateTime)
inclusive: 1,
year: Год (число)
month: Месяц (число, от 1 до 12)
day: День (число, от 1 до 31)
compare: =, !=, >, <, >=, <=
Возвращаемое значение
Тип: WP_Date_Query
Описание: Экземпляр класса WP_Date_Query
Возможные значения:
• Объект WP_Date_Query при успешной инициализации
• null в случае ошибки инициализации
Примеры использования
Создание запроса для получения записей, опубликованных в 2023 году
$date_query = new WP_Date_Query(array(
'after' => '2023-01-01',
'before' => '2023-12-31'
));
$query = new WP_Query(array(
'date_query' => $date_query->get_date_query()
));
Записи будут отфильтрованы по дате публикации
Получение записей, опубликованных после мая 2023 года
$date_query = new WP_Date_Query(array(
'year' => 2023,
'month' => 5,
'compare' => '>',
'inclusive' => true
));
$query = new WP_Query(array(
'date_query' => $date_query->get_date_query()
));
Включает записи с точной датой
Безопасность
Валидация входных данных: Параметры проходят валидацию внутри класса
Санитизация: Параметры автоматически очищаются WordPress
Рекомендации: При работе с датами используйте функции для работы с датами, например, strtotime()
— Связанные функции
Получает записи с возможностью фильтрации по дате
Создает пользовательский запрос для получения записей
— Примечания
– Ограничения
Не поддерживает временные зоны, всегда используется UTC
– Частые проблемы
- Ошибки при неверном формате даты
- Проблемы с диапазонами при использовании ‘after’ и ‘before’ одновременно