首先:don\'t use query_posts(), 曾经
其次,要为特定类别创建类别存档索引页面模板,请参阅the Codex entry for the Template Hierarchy:
category-{slug}.phpcategory-{id}.phpcategory.phparchive.phpindex.php因此,如果你有一个类别,\'foobar\', 类别ID为1, 您可以执行以下任一操作:category-foobar.phpcategory-1.php
和WordPress将使用该模板呈现该类别的存档索引页面。然而,查询被践踏的原因与模板文件无关;这是因为通过使用query_posts().
要按特定类别筛选基于日期的存档,请使用pre_get_posts 而是:
function wpse75668_filter_pre_get_posts( $query ) {
// Only modify the main loop query
// on the front end
if ( $query->is_main_query() && ! is_admin() ) {
// Only modify date-based archives
if ( is_date() ) {
// Only display posts from category ID 1
$query->set( \'cat\', \'1\' );
}
}
}
add_action( \'pre_get_posts\', \'wpse75668_filter_pre_get_posts\' );
有关更多信息,请参阅Nacin的WordCamp演示,You Don\'t Know Query。