problems exluding categories

时间:2012-09-22 作者:Jamie

我以前做过,但由于某种原因,它不起作用,我也不知道为什么。我只是想从博客页面中排除一些类别。我以为这件事很简单。我有索引。php文件打开,在循环之前,我这样做了

 query_posts( $guery_string . \'&cat=-6\' )
 if (have_posts)......rest of loop here.
我甚至尝试添加全局$query\\u字符串;最重要的是,我所做的一切都不能摆脱第6类。这种方法在最新版本的wordpress中是否不再有效?

2 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

Don\'t use query_posts(). 滤器pre_get_posts 而是:

function wpse65927_filter_pre_get_posts( $query ) {
    // If this is the blog posts index,
    // and if this is the main query,
    // exclude category 6
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( \'cat\', \'-6\' );
    }
}
add_action( \'pre_get_posts\', \'wpse65927_filter_pre_get_posts\' );
把上面的钩子和回调放进去functions.php. 不要修改任何模板文件,包括index.phphome.php, 完全

SO网友:Rachel Baker

如果您仅使用以下选项,会发生什么情况:

query_posts( \'cat=-6\' );

?

您不需要将查询字符串重新传递给索引。php模板。

结束

相关推荐

为什么‘EXCLUDE_FROM_SEARCH’从WP_QUERY中排除自定义帖子类型?

在WP 3.1中,似乎设置\'exclude_from_search\' = TRUE 对于自定义帖子类型,不仅从前端的搜索中排除帖子类型,而且从使用\'post_type\' = \'all\'.我可以想象很多情况下,插件开发人员希望访问所有帖子类型,甚至是那些被排除在前端搜索之外的帖子类型。这是一个bug,还是只是文档记录不足?背景故事:我有一个自定义的帖子类型,使用自定义的“帖子到期日期”字段。为了自动取消发布过期的自定义帖子,我创建了一个内容过期插件,该插件使用wp\\u schedule\\u