本站在实现微博功能时,需要最百科首页不显示微博分类(分类id为42)下的“文章”,网上有不少办法,虽然都能实现隐藏,但效果有所不同。

第一种办法:也是最先采用的办法,是在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('42') && is_home()) continue; ?>

该代码的原理是,文章loop中遇到分类id为42的文章后立即跳过;但同时也带来一个文章列表分页问题——如果设定的是每页显示10篇文章,其中有8篇是微博分类下的“文章”,在使用上述代码后,该页文章列表仅显示2篇非微博分类的文章。假如你最近发布了10篇微博,那么你的博客首页的文章列表将会是空的!!!

下面的两种办法都是采用了query_posts函数,经过本人测试,没有上述问题,大家可以放心使用。

第二种方法:转自露兜博客,还是在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(42),
    'paged' => $paged
);
query_posts($args);

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

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

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

此处省略n个字…

本文转自 最百科 http://www.zuibaike.com/2011/04/25/wordpress-index-hidden-special-category-posts/


更多



分类: 技术交流

评论