Как реализовать фильтр по дате wordpress?

В WordPress существует несколько способов реализации фильтрации записей по дате. Вот несколько примеров:

1. Использование WP_Query:
Создайте новый объект WP_Query с параметром 'date_query', в котором указывается критерий фильтрации по дате. Например, если вы хотите получить записи, опубликованные в определенной дате, вы можете использовать следующий код:

   $args = array(
       'post_type' => 'post',
       'date_query' => array(
           array(
               'year'  => 2021,
               'month' => 11,
               'day'   => 25,
           ),
       ),
   );
   $query = new WP_Query( $args );
   
   while ( $query->have_posts() ) {
       $query->the_post();
       // Ваш код для отображения записей
   }

Этот пример позволяет получить все записи, опубликованные 25 ноября 2021 года. Вы можете настраивать параметры 'year', 'month' и 'day' для получения записей соответствующих другим датам.

2. Использование фильтра 'pre_get_posts':
Можно использовать фильтр 'pre_get_posts', чтобы изменить основной запрос на странице блога или на других страницах, выводящих записи. В следующем примере показано, как отфильтровать записи по дате с использованием фильтра 'pre_get_posts':

   function filter_posts_by_date( $query ) {
       if ( $query->is_main_query() && ! is_admin() && $query->is_archive() ) {
           if ( isset( $_GET['filter_date'] ) ) {
               $date = sanitize_text_field( $_GET['filter_date'] );
               $query->set( 'date_query', array(
                   array(
                       'year'  => date( 'Y', strtotime( $date ) ),
                       'month' => date( 'm', strtotime( $date ) ),
                       'day'   => date( 'd', strtotime( $date ) ),
                   ),
               ) );
           }
       }
   }
   add_action( 'pre_get_posts', 'filter_posts_by_date' );

В этом примере добавляется возможность фильтрации записей по выбранной дате на страницах архива записей. Термин 'filter_date' - это идентификатор параметра, который будет использоваться в URL для передачи выбранной даты фильтрации. Вы можете настроить его согласно вашим потребностям.

3. Использование плагинов:
В WordPress также существует множество плагинов, которые предоставляют возможность добавления фильтров по дате. Некоторые из них настраиваются с помощью визуальных конструкторов и не требуют написания кода. Вы можете искать такие плагины в каталоге плагинов WordPress или на других ресурсах.

В зависимости от ваших требований и уровня опыта, вы можете выбрать один из описанных выше способов. WP_Query обеспечивает большую гибкость и контроль над запросами, но требует написания кода. Фильтр 'pre_get_posts' более прост в использовании, но имеет некоторые ограничения. Плагины позволяют добавить фильтры без необходимости писать код, но требуют установки дополнительных элементов.