不显示(只显示)置顶文章

By
WP札记

置顶文章是wp2.7引进的一个功能,具体作用如名称“置顶”。由于设置方便,样式多样并且合乎很多人的偏好,所以用处比较大。昨天折腾的时候想添加一个功能:首页的顶部框框里滚动显示置顶文章,首页内容区隐藏置顶文章。解决办法可以用 is_sticky() 判断或者 query(...) 来输出。

但是在具体实施过程中遇到了三个问题:

  • 不显示置顶文章则每页文章有多有少,看着不爽。
  • 前一页、后一页功能失效。
  • archive等归档页面失效。


一、首先可以肯定,直接判定 !is_sticky() 就输出的办法是可行的。但是分页依旧按照原来的,比如第一页的9篇文章中有4篇置顶的,除去置顶文章,第一页就只显示4篇文章,对于边栏内容比较丰富的同学们,主要内容部分必然会空出一大片。

二、其次,用 query_posts() 可以吗?当然,这也是官方给出的解决方案。只需按需要在while(…)前加入

这里遇到了一个问题,由于这个主题脱胎于twenty ten,所以文章列表显示用的是loop.php文件,稍微看看可以知道,所有需要列表文章的地方全是在这一个文件中实现的,所以在这里面改明显是不行的,直接影响的是所有页面。所以最后的解决办法还是在index.php里面的 get_template_part( 'loop', 'index' ); 的前面加入上述的语句,后面记得 wp_reset_query(); 以防不测。

三、附上只输出置顶文章的解决办法:

0

Comments: 41

  1. 技术文章,先做标记。

    2011年05月25日
  2. 恩,学习了,谢谢博主了。

    2011年05月25日
  3. 学习了,谢谢博主分享了。

    2011年05月28日
  4. 都来谢博主分享的啊,哈哈,我也谢个。

    2011年05月28日
  5. 其实官方的函数文档很好很好用的~

    2011年05月28日
    • @林木木 现在有问题都直接去官方文档搜了

      2011年05月30日
  6. 貌似我把wp的page理解为置顶页面

    2011年05月29日
    • @Cheney 你肯定误会了,那个只是页面啦

      2011年05月30日
    • @axiu 貌似和普通文章没啥区别..

      2011年05月30日
  7. 现在主题添加了好多技术玩意,呵呵 :)不错 那个相关文章插件吗?很不错啊。

    2011年05月30日
    • @郑永 不是插件……是个函数了

      2011年05月30日
  8. 你也打算进入月更行列么?杯具鸟,最近很多博主都进入月更了。

    2011年05月31日
  9. :razz: 好文,在自己的主题上用上了,多谢楼主。

    2013年10月08日
    • @kodango 有点用处就好哇

      @venmax 2013年10月09日
    • @axiu 不过这里用 get_posts应该更好吧:

      $args = array(
      ‘numberposts’ => $posts_num,
      ‘post__in’ => get_option(‘sticky_posts’),
      ‘orderby’ => ‘modified’
      );

      $sticky_posts = get_posts($args);

      文章数据可以用numberposts,get_posts 不需要调用 wp_reset_query。 :!:

      2013年10月09日

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

:razz: