Как отобразить прошлые события в одной из категорий?

Вопрос или проблема

В моем проекте есть страница событий, где отображаются все предстоящие события в соответствии с датами. Но моему клиенту нужно еще одна категория под названием “Прошедшие события“, где должны храниться все прошедшие события. Так что, когда событие истечет, оно должно переместиться в эту категорию прошедших событий. Кто-нибудь может подсказать, как это реализовать?

Требуется помощь.

Вам нужно будет использовать date запрос:

$args = array (
   'cat' => '1234', // если используется категория
   'post_type' => 'events', // если это пользовательский тип записи
   'paged' => get_query_var('paged'),
   'order' => 'DESC',
   'paged' => $paged,
   'date_query' => array( // это то, что вам нужно
     array(
       'before'    => array( // это 'до сегодняшнего дня'...
         'year'  => date('Y'),
         'month' => date('m'),
         'day'   => date('d')
        ),
       'inclusive' => true,
     ),
    ),

    );
   $past_events = new WP_Query($args);

Категории, тип записи и дата, которые вы считаете ‘прошедшими’, можно изменить там.

.

Ответ или решение

Для реализации функции отображения прошедших событий в вашем проекте, вам потребуется внести изменения в запросы данных, используемые для вывода мероприятий. В этом ответе я подробно опишу, как создать отдельный раздел для "Прошедших событий", используя возможности WordPress.

Этапы реализации

  1. Создание категории "Прошедшие события"
    Если вы еще не создали категорию "Прошедшие события", вам нужно это сделать. Это можно сделать через панель администратора WordPress, перейдя в раздел "Записи" > "Категории". Создайте новую категорию и запомните её ID, так как он понадобится вам для запросов.

  2. Настройка кастомного пост-типа (если еще не настроен)
    Убедитесь, что вы используете кастомный пост-тип для событий. Если у вас его еще нет, создайте кастомный пост-тип, например:

    function create_event_post_type() {
       register_post_type('events',
           array(
               'labels' => array(
                   'name' => __('Events'),
                   'singular_name' => __('Event')
               ),
               'public' => true,
               'has_archive' => true,
               'supports' => array('title', 'editor', 'custom-fields', 'thumbnail'),
           )
       );
    }
    add_action('init', 'create_event_post_type');
  3. Запрос на получение прошедших событий
    Для отображения прошедших событий используйте следующий код в вашем шаблоне (например, в archive-events.php или в любом другом подходящем файле):

    $args = array(
       'post_type' => 'events',
       'category__in' => array(1234), // Замените 1234 на ID вашей категории "Прошедшие события"
       'date_query' => array(
           array(
               'before' => date('Y-m-d'), // События до сегодняшнего дня
               'inclusive' => true,
           ),
       ),
       'orderby' => 'date',
       'order' => 'DESC',
       'paged' => get_query_var('paged') ? get_query_var('paged') : 1,
    );
    
    $past_events = new WP_Query($args);
  4. Вывод результата
    После выполнения запроса, используйте цикл для отображения полученных событий:

    if ($past_events->have_posts()) :
       while ($past_events->have_posts()) : $past_events->the_post();
           echo '<h2>' . get_the_title() . '</h2>';
           echo '<div>' . get_the_content() . '</div>';
           // Дополнительная информация, например дата события
       endwhile;
       wp_reset_postdata();
    else :
       echo '<p>Нет прошедших событий.</p>';
    endif;

Заключение

Следуя указанным шагам, вы сможете успешно создать раздел для отображения "Прошедших событий" в вашем проекте. Убедитесь, что ваша структура категорий и пост-типов правильно настроена, чтобы обеспечить эффективный вывод данных. Этот подход гарантирует, что ваши прошедшие события будут аккуратно храниться и отображаться отдельно от предстоящих, что улучшит пользовательский опыт.

SEO-оптимизация

Для повышения видимости вашей страницы прошедших событий в поисковых системах, обратите внимание на следующие рекомендации:

  • Используйте ключевые слова, связанные с вашими событиями, в заголовках и содержимом.
  • Оптимизируйте мета-теги (title, description) страницы, чтобы четко охарактеризовать содержание.
  • Добавьте структурированные данные для событий, чтобы помочь поисковым системам лучше индексировать ваши записи.

Следуя этой стратегии, вы не только выполните запрос клиента, но и улучшите общую управляемость и видимость вашего сайта.

Оцените материал
Добавить комментарий

Капча загружается...