【说明】
检查当前文章是否置顶。返回值TRUE 或者 FALSE.
【用法】
<?php is_sticky($post_ID); ?>
【参数】
$post_ID
(string) (optional) 文章 ID
默认: None
返回值
(boolean)
True,或 false.
【示例】
is_sticky();
// 任意置顶文章被显示.</p> <p>is_sticky('17');
// 当ID为17的文章被显示.
【源文件】
is_sticky() 位于 wp-includes/post.php.
PHP Code复制内容到剪贴板 /** *Checkifpostissticky. * *StickypostsshouldremainatthetopofTheLoop.IfthepostIDisnot *given,thenTheLoopIDforthecurrentpostwillbeused. * *@since2.7.0 * *@paramint$post_idOptional.PostID. *@returnboolWhetherpostissticky. */ functionis_sticky($post_id=0){ $post_id=absint($post_id); if(!$post_id) $post_id=get_the_ID(); $stickies=get_option('sticky_posts'); if(!is_array($stickies)) returnfalse; if(in_array($post_id,$stickies)) returntrue; returnfalse; }
这里要举例说明的是:
is_sticky(10) 是判断 $post_id为 10的文章是否是置顶文章,而不是说所有置顶文章中post_id为 10的置顶文章。之所以会有后者错误的理解,也是自己看了官方对于 is_sticky($post_id)方法用法文档比较模糊的介绍,其实细究起来,“所有置顶文章中post_id为 10的置顶文章” 这种判断也是多余的,直接 $post->id==10 或 get_the_id()==10 判断当前文章$post_id是否等于10 就好了!
这里还得感谢下友链中的tiandi兄在本站中留言中提醒说不存在“is_sticky($post_ID)中参数失效”的问题,指正自己对wordpress is_sticky($post_id)方法的错误理解。