A-A+

如何让WordPress博客首页不显示某分类的所有文章

2015年04月24日 Wordpress教程 暂无评论

  WordPress动态首页是默认显示所有文章的,按时间排序,但是有时候想让某个分类文章不在主页显示而是在特定的分类页面显示,发布的posts一般很短,不宜显示在首页,这时就要让首页不显示特定分类文章。其实 WordPress 让某分类文章不显示在首页的方法很简单:一是用插件,如 Advanced Category Excluder;二是用本文提到的代码。当然,本人更希望用代码来实现。

  第一种办法:也是最先采用的办法,是在index.php中查找 if (have_posts()) 或 while (have_posts()) ,在下面添加: 分类目录

  该代码的原理是,文章loop中遇到分类id为44的文章后立即跳过;但同时也带来一个文章列表分页问题——如果设定的是每页显示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(44), 'paged' => $paged ); query_posts($args);

  第三种办法:还是在index.php中查找 if (have_posts()) 或 while (have_posts()) ,将查找到的这一整行改成: if ( have_posts() ) : query_posts($query_string .'&cat=-44'); while ( have_posts() ) : the_post();44即为不想显示的分类ID,多个用半角逗号隔开。

  第四种方法:把下面的代码加到functions.php中,支持多个分类,用数组的形式。

  add_action( 'pre_get_posts', 'remove_cat_from_query' );

  function remove_cat_from_query( $query ) {

  if ( is_home() && $query->is_main_query() )

  $query->set( 'category__not_in', array( 1 ) );

  return $query;

  }

标签:
云好站目录

给我留言

Copyright ©2015-2020 搁浅SEO | 武汉网站优化搁浅seo博客提供seo基础知识,seo优化技巧,优化常见问题解答。
   百度统计 网站地图 XML地图 点这QQ联系我QQ:158269343 鄂ICP备15001674号-2

用户登录

分享到: