我有一个名为eguide_landing的自定义帖子类型。我为此创建了一个自定义存档页面,在其中循环浏览CPT并显示它们,并分成若干年。这样可以很好地显示。
我现在想在侧边栏上创建一个小部件,将所有年份显示为超链接,然后单击以重新加载该页面,其中显示了该年份的CPT帖子。因此,如果单击“ 2018”,它将仅显示2018年的所有CPT帖子。我似乎无法弄清楚如何创建可以提取所有年份的代码,将其显示为链接,然后单击以显示存档页面设计,但仅显示该年份。
这是存档页面的代码:
<?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(); ?>
答案 0 :(得分:0)
您可以创建将?year = 2019添加到URL的链接。然后根据'year'参数过滤结果:
$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