留着备用,之前一直是用插件实现此功能,总觉得要想让 WordPress 快一些就不能多用插件,一是牺
牲了系统稳定性,二是增加了 php 代码执行时间,三是有些插件会发疯地查询数据库,所以能用
代码的就坚决不用插件,不过在模板升级的时候一定要先备份,不然自己都忘了自己做了什么
修改,当然,你也可以和我一样,每一次升级或者改动,都做一下笔记。

方法 1 、在 index.php 中查找 if (have_posts()) 或 while (have_posts()) ,在下面添加:

<!-- If the post is in the category we want to exclude, we simply
pass to the
    next post. -->
    <?php if (in_category('12') && is_home()) continue; ?>

文章 loop 中遇到分类 id 为 12 的文章后立即跳过;如果你设置了首页显示 10 篇文章,
但是如果你其他分类下没有文章,首页会显示空白,切记住。

下面的两种办法都是采用了 query_posts 函数。
方法 2:转自露兜博客,还是在 index.php 中查找 if (have_posts())
或 while (have_posts()) ,在前面添加 query_posts 函数如下:

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

方法 3:还是在 index.php 中查找 if (have_posts()) 或 while (have_posts()) ,
将查找到的这一整行改成:

if ( have_posts() ) : query_posts($query_string .'&cat=-12'); while
    ( have_posts() ) : the_post();

12 即为不想显示的分类 ID,多个分类请用半角逗号隔开。