Фильтр Пользовательский тип сообщения Цикл по году публикации - PullRequest
0 голосов
/ 18 марта 2019

У меня есть собственный тип записи, который называется eguide_landing. Для этого я создал собственную страницу архива, где я делаю циклический просмотр CPT и показываю их, разбитые на годы. Это показывает красиво.

Теперь я хочу создать виджет на боковой панели, который показывает все годы в виде гиперссылок, и при нажатии он перезагружает страницу, показывающую сообщения CPT ТОЛЬКО с того года. Так что, если бы я нажал 2018, он отобразил бы все сообщения CPT только в 2018 году. Я не могу понять, как создать код, который тянет все годы, отображает их в виде ссылок, а затем по щелчку показывает дизайн страницы архива, но только с этим годом.

Вот код для страницы архива:

<?php
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$loop = new WP_Query( array( 'post_type' => 'eguide_landing', 'paged' => $paged, 'posts_per_page' => 12 ) );


if ( $loop->have_posts() ) :
    //Display the years as headers

    $current_year = get_the_time('Y');
    echo '<h2 class="current-year">'.$current_year.'</h2>';
    while ( $loop->have_posts() ) : $loop->the_post(); 

    $this_year = get_the_time('Y');
    if( $this_year!=$current_year ):
    $current_year = $this_year;
    echo '<h2 class="current-year">'.$current_year.'</h2>';
endif;?>  

    <a href="<?php the_permalink();?>">
        <div class="eguide-single">
            <div class="left-columns">
                <div class="eguide-featured" style="background-image:url('<?php the_post_thumbnail_url();?>');"></div>
            </div>
            <div class="right-columns">
                <h2 style="margin-bottom:0;"><?php the_title();?></h2>
                <small><?php the_date();?></small>
                <?php the_excerpt();?>
            </div>
        </div>
    </a>
    <?php endwhile;

// Render the Avada pagination

endif;

$pagination = fusion_pagination( $loop->max_num_pages, $loop );
echo $pagination;

wp_reset_postdata(); ?>

1 Ответ

0 голосов
/ 18 марта 2019

Вы можете сделать ссылки, которые добавляют? Год = 2019 к URL.А затем отфильтруйте результат на основе аргумента 'год':

 $loop = new WP_Query( array( 'post_type' => 'eguide_landing', 'paged' => $paged, 'posts_per_page' => 12, 'year' => $_GET["year"]') );

И для списка лет попробуйте один из следующих ответов: https://wordpress.stackexchange.com/questions/145148/get-list-of-years-when-posts-have-been-published

...