如何在我的wordpress网站上自定义特定类别的存档列表

时间:2014-07-17 09:29:01

标签: php wordpress function

我想在我的wordpress网站上显示档案结构

-2014(15)
--Jan(2)
--Feb(5)
----Blog Title1
----Blog Title2
----Blog Title3
----Blog Title4
----Blog Title5

默认显示我网站上的所有帖子。

但我想仅列出那些仅属于“category =>'blog-post'”的帖子。

我尝试使用 - <?php get_archives(); ?>但它会显示我网站上所有帖子的列表。

1 个答案:

答案 0 :(得分:0)

试试这个:

add_filter( 'getarchives_where', 'get_archives_where', 10, 2 );
add_filter( 'getarchives_join', 'get_archives_join', 10, 2 );

wp_get_archives(array('type' => 'monthly')); //put your parameters 

remove_filter( 'getarchives_where', 'get_archives_where' );
remove_filter( 'getarchives_join', 'get_archives_join' );


function get_archives_where( $where, $r ){

    global $wpdb;

    $where .= " AND ". $wpdb->prefix. "terms.slug = 'blog-post' AND ". $wpdb->prefix. "term_taxonomy.taxonomy = 'category'";

    return $where;
}

function get_archives_join( $join, $r ){

    global $wpdb;

    $join = "inner join ". $wpdb->prefix . "term_relationships on ". $wpdb->prefix . "posts.ID = ". $wpdb->prefix . "term_relationships.object_id inner join ". $wpdb->prefix . "term_taxonomy on ". $wpdb->prefix . "term_relationships.term_taxonomy_id = ". $wpdb->prefix . "term_taxonomy.term_taxonomy_id inner join ". $wpdb->prefix . "terms on ". $wpdb->prefix . "term_taxonomy.term_id = ". $wpdb->prefix . "terms.term_id";

    return $join;
}

https://wordpress.stackexchange.com/questions/95776/how-we-display-archives-for-specific-categories有效。我刚刚以更恰当的方式介绍了它。

我还找到了这个http://wordpress.org/plugins/wp-category-archive的小部件。这也可以帮助一些人(但是,这个插件很老)