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

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

get_permalink() 函数判断

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

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

get_post_status() 函数判断

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

//通过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' – 在回收站中的

简单的使用例子如下:

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ytkah

如何控制dedecms描述的长度?

  我们都知道调用dedecms的标题长度可以用titlelen='字符数',{dede:arclist titlelen='10'},表示标题长度为10个字符...

2806
来自专栏十月梦想

Express框架之路由已经表单自提交

正则表达式可以被使用。正则表达式中,未知部分用圆括号分组,然后可以用req.params[0]、[1]得到。

793
来自专栏python3

Django的路由控制

URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于...

3812
来自专栏程序员互动联盟

【专业技术】在C/C++程序中打印当前函数调用栈

前几天帮同事跟踪的一个程序莫名退出,没有core dump(当然ulimit是打开的)的问题。我们知道,正常情况下,如果程序因为某种异常条件退出的话,应该会产生...

3074
来自专栏代码世界

Django之路由系统

Django的路由系统   URL配置其实就是告诉Django项目你执行代码的路径,本质就是路径和调用的视图函数之间的映射关系表。Django通过这个表,可以把...

3067
来自专栏IMWeb前端团队

让fetch也可以timeout

本文作者:IMWeb zzbozheng 原文出处:IMWeb社区 未经同意,禁止转载 原生的HTML5 API fetch并不支持timeout属性...

2325
来自专栏北京马哥教育

linux bash环境变量简单总结

一.环境变量简介 Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都 是相同的,这个默认环境实际...

3526
来自专栏我的博客

坑爹的serialize和unserialize

今天项目当中遇到一个奇葩的问题,无法返序列化!!!! a:2:{s:9:”condition”;s:0:”;s:5:”value”;  这是其中的一段字符串! ...

2864
来自专栏代码GG之家

android MVVM开发模式(四)

android MVVM开发模式(四) 上节我们讲了自定义的@BindingAdapter,来扩展属性功能的时候,第一步添加了一个自定义属性 这个其实是多余的。...

1926
来自专栏从零开始学自动化测试

Selenium2+python自动化60-异常后截图(screenshot)

前言 在执行用例过程中由于是无人值守的,用例运行报错的时候,我们希望能对当前屏幕截图,留下证据。 在写用例的时候,最后一步是断言,可以把截图的动作放在断言这里,...

4055

扫码关注云+社区

领取腾讯云代金券