WordPress 如何判断一篇文章是否存在?

张子凡 WordPress建站 2018-01-05 10:52:29 阅读(...) 评论(3)

一直以来子凡都计划为泪雪网添加一个文章的收藏功能,直到现在也依旧也还只是在计划中,最近几天子凡在研究微信小程序,试图折腾用守望轩开源的 WordPress 微信小程序来接入一下我的泪雪博客和泪雪网,其中想要判断具体某篇文章是否存在。

WordPress 文章检测与判断

由于 WordPress 本身并没有提供相关的函数可以检测,但是我们可以转个弯用现有的一些函数来判断,主要有一下两种方式。

get_permalink() 函数判断

get_permalink()函数是用于获取当前文章或者通过指定文章 ID 来获取文章链接的函数,如果没有获取到链接,函数就会返回 false,也就间接的表示出文章不存在,所以就可以利用这个方法来判断文章是否存在了。

1
2
3
4
//通过get_permalink()函数判断文章是否存在
if(get_permalink($post_id)===false){
echo '文章不存在';
}

get_post_status() 函数判断

同理,get_post_status()函数是用于检测当前文章或通过指定或传递文章 ID 来获取文章状态,如果检测不到状态就会返回 false,同样也就表示文章是不存在的。

1
2
3
4
//通过get_post_status()函数判断文章是否存在
if(get_post_status($post_id)===false){
echo '文章不存在';
}

当然 get_post_status()函数还可以有更多深度的用法,因为在 WordPress 中文章的状态是有很多种的,通过这样的方式可以达到更多的调用或者判断检测。

WordPress 文章状态

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

简单的使用例子如下

1
2
3
4
//通过get_post_status()函数判断文章状态
if(get_post_status($post_id)==='publish'){
echo '文章已经发布';
}

最后需要注意的是,子凡以上提供的代码片段中$post_id 变量是指的文章或页面 ID,在 WordPress 文章主循环中可以使用 get_the_ID()函数获取,所以在需要判断或者检测指定文章状态时需要指定$post_id 变量或者传值才可以完整的使用。

除非注明,否则均为泪雪博客原创文章,转载请以链接形式标明本文地址

本文链接:https://zhangzifan.com/wordpress-check-post-exist.html

发表评论

  1. 曲樑
    1楼
    曲樑 3个月前 (01-25)

    wordpress高手昂!佩服佩服!

    • 张子凡
      回复
      张子凡 3个月前 (01-25)
      回复 @曲樑 :哈哈哈,就是折腾WordPress比较多,谈不上高手啦
  2. 姜辰
    2楼
    姜辰 4个月前 (01-05)

    呃,看到标题我就想说可以判断ID是否存在。=- = 这个方法挺不错的。