您的位置:首页 » Wordpress » 正文

浅谈wordpress的置顶文章及其条件判断函数is_sticky

wordpress已经原生支持置顶,也就是说你只需要在编辑文章后将文章勾选为置顶即可置顶成功。开启置顶文章的方式有两种,一种是在文章编辑页面的发布板块中点开“公开度”的编辑,勾选“将文章置于首页顶端”,另一种是在“所有文章”中点击快速编辑,在右侧勾选“置顶这篇文章”,如下图所示:

开启置顶文章的2种方式

默认情况下,置顶文章数不受限制,当有多篇置顶文章时按文章发布时间排序显示。如果你在文章循环输出中启用了post_class()函数,那么在置顶文章中会自动添加名为sticky的class。

我博客最近进行了升级改版,其中有个需求是:如果在首页中是置顶文章则显示分类目录,否则不显示。那么肯定要用到条件判断标签(Conditional_Tags)函数is_sticky()了。该函数为布尔型函数,主要用于判断当前函数是否有置顶文章,如果有则返回true,否则为false。它可以带具体的文章参数用来特指某篇置顶文章,比如is_sticky('17')

具体用法举例:

  1. <?php if (is_sticky() && is_home()): ?>  
  2.     <span class=“year”>于<a href=“<?php the_permalink() ?>” title=“<? the_title_attribute();?>” rel=“nofollow”><?php the_time(‘Y年m月d日’) ?></a></span>发表在<span><?php the_category(‘, ‘) ?>中</span>  
  3. <?php else: ?>  
  4.     <span class=“year”>发布于:<a href=“<?php the_permalink() ?>” rel=“nofollow”><?php the_time(‘Y年m月d日’) ?></a></span>  
  5. <?php endif;?>  

这段代码实现了我上述的需求。效果图如下:

在首页中是置顶文章则显示分类目录,否则不显示

有些同学说这我刚才的做法纯粹是多此一举啊,不需要判断是否置顶也可以实现是否在首页显示分类目录的目标。是的,但是我在首页循环中排除了显示AsideImageM&V以及Share这4类的文章,而我又不想再通过自定义循环文章来自定义这4类文章在首页中的显示,那怎么办呢?这就要讲到设置置顶文章更厉害的地方了,只要将某篇文章置顶,无论你有没有排除,它都会显示在首页中。所以当你的需求也像我这样,排除某些分类文章显示在首页中,但要求排除的分类中至少有一篇要显示在首页中,你可以选择置顶,如果要对其进行更具体的操作,可以使用is_sticky()函数。

文章参考:http://codex.wordpress.org/Function_Reference/is_sticky

  • 有5,006次围观
除特别声明外, 本站所有内容皆为原创,转载时请务必以超链接形式标明文章出处和作者信息
本文最后更新于2013年7月8日,已超过 1 年没有更新,部分内容或许已经不适用,请知悉,谢谢!

分享给我的好友看看:

 

关于作者:

贡献:kouok已经在第三评发表74篇文章了,你也来试试

简介:读大学前还不懂如何用电脑下载音乐,误选计算机专业成为一枚非典型性程序员、web前端、略懂UI设计。第三评、可好网、本站创始人。欢迎关注我的微薄

Ta的专栏 | 新浪微薄 | 腾讯微薄 | 其他SNS






快捷键:Ctrl+Enter