尝试列出年份(用于筛选器),但不显示所有年份

时间:2020-09-26 作者:artist learning to code

我做了一个ajax过滤器来过滤每年的帖子,但是这个过滤器并没有显示所有的项目。年份按DESC顺序显示,但并非所有年份都显示,我不明白。。。。

<?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;
?>
要显示筛选器,请执行以下操作:

<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>

1 个回复
最合适的回答,由SO网友:artist learning to code 整理而成

哈哈——我不得不在$terms\\u year查询中添加posts\\u per\\u页面。留着这个以防万一。。。

$terms_year = array(
\'post_type\'         => array(\'publications\'),
\'posts_per_page\'=>-1,
);

相关推荐

在允许另一个AJAX调用之前确保函数已完成

我正在使用ajax函数更新保存在用户元字段中的数组。添加到数组中的值取自标记中的数据属性,这些属性也在触发时起作用,以进行ajax调用。虽然该函数95%的时间都在工作,但无论值是否保存,都可能有点碰运气。我怀疑这是因为用户可以太快地启动这些ajax调用,而没有足够的时间让原始函数调用保存和更新元字段。在允许该函数再次运行之前,确保ajax触发的更新元字段值的功能已完成的最佳方法是什么?希望这是有意义的-不用说,请让我知道如果你需要任何更多的信息。提前谢谢!!Sample HTML<div id=&q