TL;DR: код, опубликованный в этом сообщении, показывает, как вы можете изменить запрос, который выполняется на странице «Все сообщения », чтобы вы могли ограничить поиск сообщений определенным диапазоном дат.
Прошло некоторое время с тех пор, как я в последний раз писал об использовании post_where
фильтра для изменения поискового запроса, который выполняется на данной странице, например, в области «Все сообщения» WordPress. Но, учитывая тот факт, что существует множество применений для извлечения сообщений — и настраиваемых типов сообщений — по-разному, существует множество способов использования этого единственного фильтра.
Поиск сообщений по диапазону дат
Для поиска сообщений по диапазону дат необходимо выполнить следующие действия:
- Зарегистрируйте обратный звонок с
posts_where
фильтром, - Убедитесь, что функция принимает строку
where
и экземплярWP_Query
, который выполняется на странице. - Получить сегодняшнюю дату и время, а также дату и время четырехнедельной давности
- Добавьте
where
предложение, чтобы ограничить результаты датой return
обновленный запрос.
Результатом этой функции является измененный запрос, который ограничивает сообщения, возвращаемые указанной датой и временем. А именно, четыре недели назад с точностью до часа, минуты и секунды.
Вы можете изменить это, обновив -4 weeks
строку, переданную strtotime
функции (но я рекомендую просмотреть страницу руководства по PHP, указанную ниже, чтобы понять, как эта функция работает с таким языком).
использованная литература
[posts_where](https://developer.wordpress.org/reference/hooks/posts_where/)
[WP_Query](https://developer.wordpress.org/reference/classes/wp_query/)
[wpdb](https://developer.wordpress.org/reference/classes/wpdb/)
[gmdate](https://www.php.net/manual/en/function.gmdate.php)
[strtotime](https://www.php.net/manual/en/function.strtotime.php)