wordpress中隐藏某些分类的文章

让wordpress网站不显示某个分类文章的办法有不少,比如我这个wordpress的主题就自带了在首页隐藏某些分类的文章的功能。这类的教程还是蛮多的,操作也不复杂,整理了下有三种常用的办法。

注意,分类号的查看,需要进入到wordpress的后台,在分类处,将鼠标移动到分类名称上,浏览器的下方的链接中就包含了分类号。

方法一

用首页模板里面的 query_posts 函数:后台 – 外观 – 编辑 – 首页模板(index.php)。

直接在当前主题模板的首页 index.php 中修改调出代码,比如下面代码中是让 20 和 22 分类不显示出来。

  1. <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

修改为:

  1. <?php if ( have_posts() ) : query_posts($query_string .’&cat=-20,-22′); while ( have_posts() ) : the_post(); ?>

方法二

还是先找到这句代码:

  1. <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

如果不想在首页显示某一个分类的文章,只需要在这句代码下面再加一句:

  1. <?php if (is_home() && in_category(‘1’) ) continue; ?>

把其中的 in_category(’1′) 这里的数字改成你不想显示出来的分类的 ID 就可以了。

上面两种方法操作简洁,但是有个缺点,那就是如果想要不显示分类的文章很多的话,文章下面的翻页往后翻的话就会都是空白页面。虽然影响不大,但是对于我们这些爱折腾并且都有强迫症的草根站长来说,心里还是挺不爽的,每次点到后面都是空白页,真是叔可忍婶不可忍的事情。

好在下面第三种方法就能解决。

方法三

functions.php 修改,这个方法是比较好的,建议使用。直接在functions.php底部添加代码:

  1. //让wordpress首页不显示某一分类文章
  2. function exclude_category_home( $query ) {
  3. if ( $query->is_home ) {
  4. $query->set( ‘cat’, ‘-20, -22’ ); //你要排除的分类ID 
  5. }
  6. return $query;
  7. }
  8. add_filter( ‘pre_get_posts’, ‘exclude_category_home’ );

 

这个方法直接不会有任何页面空缺问题,而且在最新内容中也不会出现。直接在当前主题的 functions.php 添加上面的代码,修改对应的分类排除。修改后,首页文章列表下面的页码会减少,就是讲不显示分类的文章减掉了。

ljchen

这个作者特别懒,什么都没有说。

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐