从主博客中隐藏一类帖子,并仅在类别视图中显示

时间:2015-02-11 作者:Marc

我想在主博客页面上隐藏一篇文章(在index.php上运行),并让它仅在访问者查看特定类别时显示。

在循环之前,我尝试了以下方法:

<?php query_posts(\'cat=-208\'); ?>
这会按预期在博客视图中隐藏帖子,但当我单击类别208时,所有帖子都会显示在那里,甚至那些没有标记该类别的帖子。然而,标有该类别的帖子也不会出现在那里。

请帮忙。

1 个回复
最合适的回答,由SO网友:Marc 整理而成

通过将以下内容放入functions.php 我的主题目录中的文件:

function exclude_category( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( \'cat\', \'-208\' );
    }
}
add_action( \'pre_get_posts\', \'exclude_category\' );
使用此代码的结果是,任何标记为208类的帖子都不会出现在主博客中,但它们确实会出现在208类以及它们标记的任何其他类别中。

要排除多个类别,请按如下方式编辑上面的以下行:

$query->set( \'cat\', \'-208,-9,-50\' );
你可以找到full details here.

感谢米洛的评论为我指明了正确的方向。

结束

相关推荐

Switch_to_Blog()中的_post()更改了我的摘录

在我正在编写的插件中使用WP\\u Query和multisite时,我遇到了一个奇怪的问题,该插件挂钩到add\\u meta\\u框中。我想在元框中的下拉列表中显示所有帖子标题。在第2个博客中添加或编辑一篇文章(可以是任何博客编号)时,我会在第1个博客中循环,并从自定义的文章类型中获取文章标题,以填充到select下拉列表中。这是应该的,但在此过程中,我的摘录中的文本被替换为循环最后一篇文章中的摘录。我已禁用所有插件。我已在所有网站上启用2015主题。我正在使用wordpress 4.1。我试过只发帖