
文章目录[隐藏]
- 通过 get_permalink() 检测
- 通过 get_post_status() 检测
前些天给 WordPress大学 重新添加了文章收藏功能,还是使用 WP Favorite Posts 插件实现,紧接着发现一个问题:网站删除了一些文章,如果用户之前收藏过这些文章,他们的收藏数据中仍旧包含这些文章的ID,导致他们的收藏数量统计不准确。
看了插件代码,发现它是添加一个用户字段来存储用户收藏的文章ID的,要解决这个问题,必须将已删除的文章id从每个用户的这个字段中删除。那么,我们就需要验证哪些文章id是无效的,也就是通过id判断这篇文章是否存在。
WordPress 本身没有专门的函数来检测,不过我们可以通过一些其他方式检测,在这里介绍两种:
通过 get_permalink() 检测
get_permalink() 函数可以返回当前文章或指定文章的链接,如果没有链接(即文章不存在)就返回false,我们就是通过这个来实现的。
1 2 3 | if(get_permalink($post_id) === false){ // 文章不存在后执行操作 } |
代码中的 $post_id 就是我们要检测的文章的id,我们需要在函数中指定或传递即可。
通过 get_post_status() 检测
get_post_status() 函数可用于检测当前文章或指定文章的状态,如果检测不到状态(即文章不存在)就返回false,我们就是通过这个来实现的。
1 2 3 | if(get_post_status($post_id) === false){ // 文章不存在后执行操作 } |
代码中的 $post_id 就是我们要检测的文章的id,我们需要在函数中指定或传递即可。
当然,你也可以使用它来检测文章的状态来实现一些操作,可以返回的状态为:
- 'publish' - 公开发布的文章或页面
- 'pending' - 待审文章
- 'draft' - 草稿
- 'auto-draft' - 最新自动保存的草稿,没有文章内容
- 'future' - 定时发布
- 'private' - 私密文章
- 'inherit' - 修订版本
- 'trash' - 在回收站中的
简单的例子:
1 2 3 4 5 6 7 8 | <?php if ( get_post_status ( $post_id ) == 'private' ) { //如果文章状态是 private echo '这是一篇私密文章'; } else { echo '这是一篇公开文章'; } ?> |
好了,就到这里。如果你要进一步了解如何解决文章开头提到的 WP Favorite Posts 的问题,请移步:https://www.wpdaxue.com/wp-favorite-posts.html
- 最新文章
-
- phpcms v9无法更新url
- phpcms注册会员操作失败
- phpcms怎么修改模板
- phpcms添加内容报500错误的原因及解决方法
- linux服务器下phpcms提示hash数据验证失败的解决方法
- phpcms与phpsso通信失败的解决方法
- phpcms上传图片提示服务器安全认证错误的原因及解决方法
- phpcms v9更新栏目缓存失败的原因及解决方法
- phpcms v9后台登录提示验证码错误
- phpcms可以做什么?
- phpcms v9安装失败
- phpcms会员登录失败
- phpcms前台js获取不到cookie用户信息
- phpcms控制器不存在
- phpcms v9 php7可以运行吗
- phpcms js乱码怎么解决
- phpcms提示服务器安全认证错误
- phpcms php.ini在哪里
- phpcms phpsso验证码错误
- phpcms v9参数传递错误
- 热门文章
- 热门tag
- 随机tag