如何让wp_get_ages显示只创建页面的月份?

时间:2010-11-24 作者:maniu

我正在创建一个插件,但遇到了一个问题,

此代码给出了我添加帖子的所有月份:

        <select name="sdate" id="sdate">
    <?php wp_get_archives(\'format=option\'); ?>
        </select> 
问题是我没有得到只添加了页面的日期。

基本上,我想要一个下拉列表,列出每年+每月(例如“2010年9月”)添加的值,如“年-月”(例如“2010-05”)

您可以在Wordpress导出页面上看到一些工作,但复制的代码对我不起作用。

2 个回复
SO网友:MathSmath

wp\\u get\\u archives()函数在其WHERE子句上运行一个过滤器——它被调用getarchives_where. 您可以使用此选项修改查询,使其仅包含页面而不包含帖子(这是硬编码的默认设置)。

我尚未对此进行测试,但请尝试:

add_filter(\'getarchives_where\',\'my_archives_filter\');

function my_archives_filter($where_clause) {

  return "WHERE post_type = \'page\' AND post_status = \'publish\'";

}
然后,只需按照通常的方式使用wp\\u get\\u archives函数。

显然,这将影响整个站点的wp\\u get\\u archives功能,因此,如果使用wp\\u get\\u archives在站点上的其他位置获取后期归档,则必须将add\\u过滤器包装在可识别上下文的内容中。

SO网友:maniu

因此,下面是使所有工作正常的代码(显示带有添加日期的存档下拉列表):

    add_filter(\'getarchives_where\',\'my_archives_filter\');

    function my_archives_filter($where_clause=\'\') {
        return "";
    }


        <select name="sdate" id="sdate">
               <?php wp_get_archives(\'format=option\'); ?>
        </select>
谢谢MathSmath!

结束

相关推荐