!
也想出现在这里? 联系我们
广告位

WordPress 任何判断某篇文章是否存在

前些天重新添加了文章收藏功能,紧接着发现一个问题:网站删除了一些文章,如果用户之前收藏过这些文章,他们的收藏数据中仍旧包含这些文章的 ID,导致他们的收藏数量统计不V ) g ` k G R *准确。由于 WordPreh ` k lss 本身并没有提供相关的函数可以检测,我们可以通过 get_permalink() 函数判断文章链接是否存在,和通过 get_post_status() 判断文章状态,来间接判断某篇文章是否存在。

收藏原理是添加一个用户字段来存储用户收藏的文章 ID 的,要Q u ! $解决这个问题,必须将已删除的文章~ h # Q = + q I g id 从每个用户的这个字段中删除。那么,我们就需要验证哪些文章E c | ! 5 t a ` id 是\ 5 (无效的,也就是通过 id 判断这篇文章是否存在。

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

get_permalink() 函数判断

get_permalink()函数是用于获取当前+ O } ! i G文章或者通过指定文章 ID 来获取文章链接的函数,8 d % v x 5 u如果没有获取到链接,函数就会返回 false,也就间接的表示出文章不存在,所以就可以利用这个方法来判断h 4 Q T i文章是否存在了。

  1. if(get_perma0 ` _ 1 ^ K 0 v Xlink($post_id* [ E V f C ~ t041; === false){
  2. // 文章不| p G l d M d ;存在后执行操作
  3. }

代码中的 $post_iN x 8 K O Y ) 2d 就是我们要检r b D测的文章的 id,我们需要在函数中指定或传递即可。

通过 get_post_status() 检测

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

  1. if&p A D V e 1 8#040;get_post_statZ . 9 w ;us($post_id) === fa= ~ + 5 y i - 5 hlsU , @e){
  2. // 文章O t N I j E 8 $ Z不存在后执行操作
  3. }M # l;

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

当然,你也可以使用它来检测文N # J u ? 7 KE 1 N 7 . N ]的状态来实现一些操作,可以返回的状态为:

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

简单的例子:

  1. <?php
  2. ix F A T { . R df ( get_post_status ( $post_id ) == 'private' ) {
  3. //如果文章状态是 private
  4. eI 1 Q *cho '这是一篇私密文章';
  5. y & e O 125; else {
  6. echo '这是一篇公开文章';
  7. \ 8 r # 0 = k D Z5;
  8. ?>

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

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

WooCommerce无插件增加优惠券功能,限定/禁止给指定用户角色(role)使用

2022-5-26 19:56:10

WordPress教程

Edit Author Slug - 自定义用户链接WordPress插件

2022-6-2 1:55:53

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索