首页
站长论坛BBS
救助
投稿
discuz视频教程
discuz技术支持
版块
登录
快速注册

wordpress中is_sticky()置顶文章方法参数与用法

冷蝶 2015-4-17 [wordpress] 来自PC 复制链接
32179
discuz使用视频教程
31idc

马上注册,一起探讨正确快速的建站方法

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
wordpress is_sticky($post_id) 不带参数时,主要用来在循环输出文章列表中时,用来判断当前$post_id是否是置顶文章;带参数则是判断给定的$post_id是否是置顶文章。

【说明】

检查当前文章是否置顶。返回值TRUE 或者 FALSE.

【用法】
  1. <?php is_sticky($post_ID); ?>
  2. 【参数】
  3. $post_ID
  4. (string) (optional) 文章 ID
  5. 默认: None
  6. 返回值
  7. (boolean)
  8. True,或 false.
  9. 【示例】

  10. is_sticky();
  11. // 任意置顶文章被显示.
  12. is_sticky('17');
  13. // 当ID为17的文章被显示.
  14. 【源文件】
  15. is_sticky() 位于 wp-includes/post.php.
  16. /**
  17. * Check if post is sticky.
  18. *
  19. * Sticky posts should remain at the top of The Loop. If the post ID is not
  20. * given, then The Loop ID for the current post will be used.
  21. *
  22. * @since 2.7.0
  23. *
  24. * @param int $post_id Optional. Post ID.
  25. * @return bool Whether post is sticky.
  26. */
  27. function is_sticky( $post_id = 0 ) {
  28. $post_id = absint( $post_id );
  29. if ( ! $post_id )
  30.   $post_id = get_the_ID();
  31. $stickies = get_option( 'sticky_posts' );
  32. if ( ! is_array( $stickies ) )
  33.   return false;
  34. if ( in_array( $post_id, $stickies ) )
  35.   return true;
  36. return false;
  37. }
复制代码

这里要举例说明的是:

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 就好了!



上一篇:Dedecms搬家图片无法显示与无法上传解决办法
下一篇:wordpress利用Open Social插件添加QQ等社交帐号登录
lgkongyaji 发表于 2015-4-17 21:48:45 来自PC
谢谢分享哈
洛阳app外包 发表于 2015-4-23 15:54:50 来自PC
支持学习
dajie_tv 发表于 2015-4-23 20:49:25 来自PC
谢谢分享哈
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

快速回复 返回顶部 返回列表