现在的位置:首页>wordpress>正文

wordpress只在某个分类菜单下置顶指定的文章

2016年07月04日 ⁄ 共 1264字 评论 2 条

很多时候,我们的wordpress站点,可能需要将某篇文章进行置顶,如果是全局的话,直接在文章页面里编辑之后进行置顶操作就行了,但如果想只在一个分类菜单下进行置顶操作的话,目前就需要借助插件或者修改代码来实现了.比如福利老幺网站中有一篇文章,在网站SEO这个菜单下,想让这篇文章置顶显示,就是这样一个意思了.

如果您需要用插件的话,直接安装WP-Sticky即可实现这个功能.

WordPress网站分类列表不显示置顶文章,内容丰富栏目较多的网站会对推荐的文章进行置顶显示,以便访客打开该分类时第一时间能看到管理员推荐的内容.像福利老幺的话,是一个广告客户,今天提出这样的要求.其想在福利老幺的网站中发一个广告,但要求为只在"空间域名"这个菜单里置顶.

在当前主题的分类列表模板中添加代码:

  1. <?php
  2. /**
  3.     *分类菜单下置顶指定的文章
  4.     *来源自http://www.fuli121.com/
  5. */
  6.     query_posts(array(
  7.         "category__in" => array(get_query_var("cat")),
  8.         "post__in" => get_option("sticky_posts")
  9.         )
  10.     );
  11.     while(have_posts()) : the_post();
  12. ?>
  13. <h2>【置顶】<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
  14. <?php
  15.     endwhile;
  16.     wp_reset_query();
  17. ?>

效果如下图:

wordpress只在某个分类菜单下置顶指定的文章

样式的话,需要自己动手添加了.

接下来,我们还需要在正常的分类列表中排除已经设置为置顶的文章,代码内容如下:

  1. <?php while(have_posts()) : the_post(); ?>
  2.     <?php if(!is_sticky()){?>
  3.     <h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
  4.     <?php the_excerpt(); ?>
  5. <?php } endwhile;?>

其实就是在主循环中添加if(!is_sticky())来判断,表示如果不是置顶文章则显示.

要是我想显示其中的3篇置顶文章 按照最新的显示 应该怎么写呢?

在array里加多个’showposts’=>’3’

当然,也可以使用下面的代码来区别,如下:

  1. <?php
  2. if(is_sticky()) :
  3. //这里是置顶文章
  4. else :
  5. //这里是非置顶文章
  6. end if ;
  7. ?>

这个效果更直接.

小结

这里有一个问题,那就是很多朋友,首页的主题,基本都有一个默认显示置顶文章的,我们需要去首页将其中的代码进行修改,主要是去掉sticky相关的代码了.

评论 2 条 评论内容很精采,有内幕,而且绝对有干货

  1. 香港独立IP主机 2016年07月04日 14:35  @回复  Δ-49楼 回复

    wordpress只在某个分类菜单下置顶指定的文章,这个弄起来好像不是那么的简单,不过还是很常用的

  2. 我爱动感单车网 2016年07月12日 13:50  @回复  Δ-48楼 回复

    功能非常实用,自己也发现喜欢,可惜我这样的菜鸟不会弄啊。

给我留言