最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

custom post types - Trying to list years (for a filter) but not all years display

programmeradmin5浏览0评论

I did an ajax filter to filter posts per years, however the filter isn't showing all items. Years are displayed in DESC order, but not all years appear I don't understand....

<?php $terms_year = array(
    'post_type'         => array('publications'),
);

$years = array();
$query_year = new WP_Query( $terms_year );

if ( $query_year->have_posts() ) :
    while ( $query_year->have_posts() ) : $query_year->the_post();
        $year = get_the_date('Y');
        if(!in_array($year, $years)){
            $years[] = $year;
        }
    endwhile;
    wp_reset_postdata();
endif;
?>

To show the filter:

<ul class="d-flex js-filter px-0 pb-3 justify-content-center">
<span class="text-uppercase font-weight-bold"><?php _e( 'Year:', TEXTDOMAIN ); ?></span>
<li class="text-center js-filter-item"><a class=""  data-allr="all"><?php _e( 'All', TEXTDOMAIN ); ?></a></li>
<?php foreach( $years as $year ) {?>
<li class="text-center js-filter-item">
<a class=""  data-year="<?php echo $year;?>" ref="#"><?php echo $year;?></a>
</li>
<?php }?>
</ul>

I did an ajax filter to filter posts per years, however the filter isn't showing all items. Years are displayed in DESC order, but not all years appear I don't understand....

<?php $terms_year = array(
    'post_type'         => array('publications'),
);

$years = array();
$query_year = new WP_Query( $terms_year );

if ( $query_year->have_posts() ) :
    while ( $query_year->have_posts() ) : $query_year->the_post();
        $year = get_the_date('Y');
        if(!in_array($year, $years)){
            $years[] = $year;
        }
    endwhile;
    wp_reset_postdata();
endif;
?>

To show the filter:

<ul class="d-flex js-filter px-0 pb-3 justify-content-center">
<span class="text-uppercase font-weight-bold"><?php _e( 'Year:', TEXTDOMAIN ); ?></span>
<li class="text-center js-filter-item"><a class=""  data-allr="all"><?php _e( 'All', TEXTDOMAIN ); ?></a></li>
<?php foreach( $years as $year ) {?>
<li class="text-center js-filter-item">
<a class=""  data-year="<?php echo $year;?>" ref="#"><?php echo $year;?></a>
</li>
<?php }?>
</ul>
Share Improve this question edited Sep 27, 2020 at 6:48 artist learning to code asked Sep 26, 2020 at 23:48 artist learning to codeartist learning to code 3311 gold badge5 silver badges18 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

LOL-- I had to just add posts_per_page in my $terms_year query. Leaving this up in case people need it...

$terms_year = array(
'post_type'         => array('publications'),
'posts_per_page'=>-1,
);
发布评论

评论列表(0)

  1. 暂无评论