WordPress 3.8不用插件实现“首页不显示某个分类下的文章”方法

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

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

1
2
3
4
    <!-- 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函数如下:

1
2
3
4
5
6
7
    $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()) ,
将查找到的这一整行改成:

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

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

原文链接:https://xiaohost.com/398.html,转载请注明出处。
0

评论0

请先