Небольшой пример php-кода, позволяющий вывести записи из определенной категории сайта WordPress с размещением отдельно по годам на одной странице.
Сортировка записей в списке производится по дате публикации.
К каждой записи выводится изображение, дата и название.
Также в коде указывается путь до стокового изображения если оно отсутствует у записи и оповещение об отсутствии записей.
Дело остается только за CSS.
Также: Добавил перед архивом еще скрипт, который выводит запланированные записи.
P.S. Следует также добавить для полного функционала несколько хуков — просмотр запланированных записей гостями и изменение URL записи для запланированной.
<div class="merprcode"> <!-- Новый блок --> <?php // === Только запланированные мероприятия === $args_future = array( 'posts_per_page' => 100, 'orderby' => 'date', 'order' => 'DESC', 'category_name' => 'events', 'post_status' => 'future', ); $query_future = new WP_Query($args_future); ?> <div class="year-section scheduled-events"> <div class="gadisa-list2 gadisa-list"> <?php if ($query_future->have_posts()) : while ($query_future->have_posts()) : $query_future->the_post(); ?> <div class="post-card scheduled"> <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"> <?php if (has_post_thumbnail()) : ?> <span class="post-thumbnail"><?php the_post_thumbnail('thumbnail'); ?></span> <?php else : ?> <span class="post-thumbnail"> <img src="/wp-content/uploads/2024/02/nofona.png" alt="Нет изображения" /> </span> <?php endif; ?> <span class="post-date wow fadeInLeft animated"> <?php the_date('F j, Y'); ?> </span> <span class="texthome"><?php the_title(); ?></span> </a> </div> <?php endwhile; else : ?> <div class="no-posts">Предстоящих мероприятий пока нет.</div> <?php endif; wp_reset_postdata(); ?> </div> </div> <?php // === 2025 === $args_2025 = array( 'posts_per_page' => 100, 'orderby' => 'date', 'order' => 'DESC', 'category_name' => 'events', 'post_status' => array('publish'), // добавлен статус future 'year' => 2025, ); $query_2025 = new WP_Query($args_2025); ?> <div class="year-section year-2025"> <h2>Архив мероприятий 2025 года</h2> <div class="gadisa-list2 gadisa-list"> <?php if ($query_2025->have_posts()) : while ($query_2025->have_posts()) : $query_2025->the_post(); ?> <div class="post-card"> <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"> <?php if (has_post_thumbnail()) : ?> <span class="post-thumbnail"><?php the_post_thumbnail('thumbnail'); ?></span> <?php else : ?> <span class="post-thumbnail"> <img src="/wp-content/uploads/2024/02/nofona.png" alt="Нет изображения" /> </span> <?php endif; ?> <span class="post-date wow fadeInLeft animated"><?php echo get_the_date('F j, Y'); ?></span> <span class="texthome"><?php the_title(); ?></span> </a> </div> <?php endwhile; else : ?> <div class="no-posts">Записей за 2025 год не найдено.</div> <?php endif; wp_reset_postdata(); ?> </div> </div> <?php // === 2024 === $args_2024 = array( 'posts_per_page' => 100, 'orderby' => 'date', 'order' => 'DESC', 'category_name' => 'events', 'post_status' => array('publish', 'future'), // добавлен статус future 'year' => 2024, ); $query_2024 = new WP_Query($args_2024); ?> <div class="year-section year-2024"> <h2>Архив мероприятий 2024 года</h2> <div class="gadisa-list2 gadisa-list"> <?php if ($query_2024->have_posts()) : while ($query_2024->have_posts()) : $query_2024->the_post(); ?> <div class="post-card"> <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"> <?php if (has_post_thumbnail()) : ?> <span class="post-thumbnail"><?php the_post_thumbnail('thumbnail'); ?></span> <?php else : ?> <span class="post-thumbnail"> <img src="/wp-content/uploads/2024/02/nofona.png" alt="Нет изображения" /> </span> <?php endif; ?> <span class="post-date wow fadeInLeft animated"><?php echo get_the_date('F j, Y'); ?></span> <span class="texthome"><?php the_title(); ?></span> </a> </div> <?php endwhile; else : ?> <div class="no-posts">Записей за 2024 год не найдено.</div> <?php endif; wp_reset_postdata(); ?> </div> </div> <?php // === 2023 === $args_2023 = array( 'posts_per_page' => 100, 'orderby' => 'date', 'order' => 'DESC', 'category_name' => 'events', 'post_status' => array('publish', 'future'), // добавлен статус future 'year' => 2023, ); $query_2023 = new WP_Query($args_2023); ?> <div class="year-section year-2023"> <h2>Архив мероприятий 2023 года</h2> <div class="gadisa-list2 gadisa-list"> <?php if ($query_2023->have_posts()) : while ($query_2023->have_posts()) : $query_2023->the_post(); ?> <div class="post-card"> <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"> <?php if (has_post_thumbnail()) : ?> <span class="post-thumbnail"><?php the_post_thumbnail('thumbnail'); ?></span> <?php else : ?> <span class="post-thumbnail"> <img src="/wp-content/uploads/2024/02/nofona.png" alt="Нет изображения" /> </span> <?php endif; ?> <span class="post-date wow fadeInLeft animated"><?php echo get_the_date('F j, Y'); ?></span> <span class="texthome"><?php the_title(); ?></span> </a> </div> <?php endwhile; else : ?> <div class="no-posts">Записей за 2023 год не найдено.</div> <?php endif; wp_reset_postdata(); ?> </div> </div> <?php // === 2022 === $args_2022 = array( 'posts_per_page' => 100, 'orderby' => 'date', 'order' => 'DESC', 'category_name' => 'events', 'post_status' => array('publish', 'future'), // добавлен статус future 'year' => 2022, ); $query_2022 = new WP_Query($args_2022); ?> <div class="year-section year-2022"> <h2>Архив мероприятий 2022 года</h2> <div class="gadisa-list2 gadisa-list"> <?php if ($query_2022->have_posts()) : while ($query_2022->have_posts()) : $query_2022->the_post(); ?> <div class="post-card"> <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"> <?php if (has_post_thumbnail()) : ?> <span class="post-thumbnail"><?php the_post_thumbnail('thumbnail'); ?></span> <?php else : ?> <span class="post-thumbnail"> <img src="/wp-content/uploads/2024/02/nofona.png" alt="Нет изображения" /> </span> <?php endif; ?> <span class="post-date wow fadeInLeft animated"><?php echo get_the_date('F j, Y'); ?></span> <span class="texthome"><?php the_title(); ?></span> </a> </div> <?php endwhile; else : ?> <div class="no-posts">Записей за 2022 год не найдено.</div> <?php endif; wp_reset_postdata(); ?> </div> </div> </div>