奥多码,点击查看详情 APP分发吧,点击查看详情

WordPress 检查一篇文章是否存在

       
广告2021-06-03到期2021-07-03广告2021-06-03到期2021-07-03
       
广告2021-06-03到期2021-07-03广告2021-06-03到期2021-07-03

前些天给博客重新添加了文章收藏功能,还是使用 WP Favorite Posts 插件实现,紧接着发现一个问题:网站删除了一些文章,如果用户之前收藏过这些文章,他们的收藏数据中仍旧包含这些文章的ID,导致他们的收藏数量统计不准确。

WordPress 检查一篇文章是否存在

看了插件代码,发现它是添加一个用户字段来存储用户收藏的文章ID的,要解决这个问题,必须将已删除的文章id从每个用户的这个字段中删除。那么,我们就需要验证哪些文章id是无效的,也就是通过id判断这篇文章是否存在。

WordPress 本身没有专门的函数来检测,不过我们可以通过一些其他方式检测,在这里介绍两种:

通过 get_permalink() 检测

get_permalink() 函数可以返回当前文章或指定文章的链接,如果没有链接(即文章不存在)就返回false,我们就是通过这个来实现的。

  1. if(get_permalink($post_id)===false){
  2. //文章不存在后执行操作
  3. }

代码中的 $post_id 就是我们要检测的文章的id,我们需要在函数中指定或传递即可。

通过 get_post_status() 检测

get_post_status() 函数可用于检测当前文章或指定文章的状态,如果检测不到状态(即文章不存在)就返回false,我们就是通过这个来实现的。

  1. if(get_post_status($post_id)===false){
  2. //文章不存在后执行操作
  3. }

代码中的 $post_id 就是我们要检测的文章的id,我们需要在函数中指定或传递即可。

当然,你也可以使用它来检测文章的状态来实现一些操作,可以返回的状态为:

  • ‘publish’ – 公开发布的文章或页面
  • ‘pending’ – 待审文章
  • ‘draft’ – 草稿
  • ‘auto-draft’ – 最新自动保存的草稿,没有文章内容
  • ‘future’ – 定时发
  • ‘private’ – 私密文章
  • ‘inherit’ – 修订版本
  • ‘trash’ – 在回收站中的

简单的例子:

  1. <?php
  2. if(get_post_status($post_id)==‘private‘){
  3. //如果文章状态是private
  4. echo‘这是一篇私密文章’;
  5. }else{
  6. echo‘这是一篇公开文章’;
  7. }
  8. ?>

好了,就到这里。

本文由【好易之】整理自网络!
原创文章,作者:【好易之】如转载请注明出处:https://www.zhengjiaxi.com/zxwd/jswd/69834.html
如有侵权,请邮件联系 aoduoye@qq.com 删除。
本站发布的文章及附件仅限用于学习和研究目的;不得将上述内容用于商业或非法用途,否则后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。
如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。
(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
好易之的头像好易之站长
上一篇 2020-05-27 00:37
下一篇 2020-05-27 00:37

相关推荐

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询:点击这里给我发消息

 

工作时间:周一至周五,9:30-18:30,节假日休息

关注公众号
请查看头部文章来源地址!本站所有内容均为互联网收集整理和网友上传。仅限于学习研究,切勿用于商业用途。否则由此引发的法律纠纷及连带责任本站概不承担。
阿里云