如何创建一个WordPress帖子过滤器,用户可以使用它来按年份过滤帖子?

时间:2018-06-18 作者:Web People

我希望在存档页面或其他带有帖子循环的页面顶部有一个下拉菜单,允许用户按日期(年)筛选帖子

发布帖子的所有年份都会有一个下拉列表。Eg:2017、2018、2019

我的循环:

<?php
    $args = array(
        \'cat\' => $FeaturedNewsCat,
        \'posts_per_page\' => 2,
        \'order\' => DSC
    );
    $the_query = new WP_Query($args);
    while ( $the_query->have_posts() ) : $the_query->the_post();
?>

        <!--Post Template Comes Here-->

<?php
    endwhile;
    wp_reset_postdata();
?>
请告诉我我必须做什么来实现过滤功能。非常感谢您的帮助。

1 个回复
SO网友:Krzysiek Dróżdż

我很确定你甚至没有尝试寻找解决方案。。。如果你这样做了,我很肯定你会this Codex page, 您可以在何处找到此代码:

<select name="archive-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;">
  <option value=""><?php echo esc_attr( __( \'Select Month\' ) ); ?></option> 
  <?php wp_get_archives( array( \'type\' => \'monthly\', \'format\' => \'option\', \'show_post_count\' => 1 ) ); ?>
</select>
它在select tags中显示每月存档的下拉框,并显示日志计数。

你所要做的就是改变\'monthly\'\'yearly\' 并开始使用归档模板和全局wp_query 而不是你自己的习惯。

结束

相关推荐

添加到数组并通过do_action/Apply_Filters传递它

作为练习,我正在使用PHPclass to add meta boxes 我在GitHub上找到了。我只是复制了代码,现在我正在玩它来理解它。其工作原理如下:包含该类的文件包含在init中。在该文件内部,但在类外部,有一个空数组$meta_boxes 已初始化之后,使用apply_filters. 我猜是apply_filters 使用而不是do_action 因为后者不返回任何内容——$meta_boxes = apply_filters( \'cmb_meta_boxes\', $meta_boxes