像WordPress后端一样在前端发布过滤月份下拉菜单

时间:2016-03-18 作者:shubham jain

当我运行以下代码时。

$args = array(
    \'type\'            => \'monthly\',
    \'limit\'           => \'\',
    \'format\'          => \'option\', 
    \'before\'          => \'\',
    \'after\'           => \'\',
    \'show_post_count\' => false,
    \'echo\'            => 1,
    \'order\'           => \'DESC\',
    \'post_type\'     => \'post\'
)
<select>
<option value=""> Select </option>
<?php 
    wp_get_archives( $args ); 
?>  </select>
我得到了这个输出

<select>
<option> Select </option>
    <option value="http://test.astech-us.com/holistichivorce/2016/03/"> March 2016 </option>
<option value="http://test.astech-us.com/holistichivorce/2016/02/"> February 2016 </option></select>
但我需要输出像WordPress后端过滤器选项。像这样

    <select name="m" id="filter-by-date"><option selected="selected" value="0">All dates</option><option value="201603">March 2016</option><option value="201602">February 2016</option></select>
谢谢你,

1 个回复
SO网友:iantsch

wp_get_archives 创建其与函数的链接get_archives_link. 此函数返回纯HTML,但它有一个可以挂接的过滤器。

您可以使用get_archives_link 筛选以使用一些正则表达式操作HTML。

function my_archives_link($link_html) {
    //TODO: my regex to manipulate the HTML
    return $link_html;
}

add_filter(\'get_archives_link\',\'my_archives_link\')
进一步阅读wp_get_archives
  • get_archives_linkget_archives_link
  • 相关推荐

    绕过WP查询中的“supress_Filters”

    显然,出于某种不合逻辑的原因,开发人员决定获取所有语言帖子的唯一方法是添加supress_filters=true 到WP\\u查询(而不是像这样language_code=all 选项)。无论如何,我的情况是,我需要获取所有语言的帖子,但也需要使用过滤器修改WP\\u查询。有没有办法强制将我的过滤器添加到查询中,即使supress_filters 设置为false?这是我需要添加的过滤器:add_filter( \'posts_where\', function($where, $wp_query) {