原来用Weisay主题,想在博客首页隐藏指定分类文章(我隐藏的是碎语)很简单,只需在函数php if (have_posts())前加上限制条件即可。如找到如下代码:
< ?php if ( have_posts() ) : ?>
用下面的代码替换:
< ?php if ( have_posts() ) : is_home() && query_posts($query_string .'&cat=-132') ?>
cat= 你想让出现在首页的分类ID,如果前面加个负号就单表某个分类的ID你不想让他显示在首页。
换了弥漫主题后,忽然发现index.php中根本就没有php if (have_posts()),这样原来微博之类的文字都显现出来,弄的博客很不好看。
开始我想通过修改文章发布日期实现碎语的内容不在首页最新文章中出现,可这么做实在是有些笨拙。后来在弥漫后台发现了特色文章功能,这个功能可以以幻灯的形式显示指定分类的文章。只是这个功能无法真正做到隐藏,比如你设置显示最新文章,那么最新文章既在幻灯里显现又在首页出现。如果你设置隐藏最新文章,那么任何分类的最新文章就只在幻灯出现而不在首页显现。
今天仍不死心,想解决这个问题。再次打开index.php,发现了函数query_posts。百度一下查到解释说该函数也是用于控制哪些文章可以出现在主循环中,真是踏破铁鞋无觅处。继续查找,看到了如下方法:
如果你不想让某分类的文章出现在主循环中,那么你可以使用query_posts添加参数category__not_in即可:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
// 2, 6就是你不想显示的分类ID,多个用半角逗号隔开
'category__not_in' => array(2, 6),
'paged' => $paged
);
query_posts($args);

如果只想让显示某个分类的文章,可以将category__not_in改成category__in。同理,如果不显示某标签下的文章,可以将category__not_in改成:tag__not_in,或者只想让显示某个标签下的文章,可以将category__not_in改成tag__in,后面跟着标签的ID即可。
强大地弥漫主题还有个功能就是能在侧边栏显示指定分类的文章。这样碎语一栏的东西就不会出现在首页最新博文里却可以在侧边栏显现,真的很完美。