WordPress 5.7 引入了两个函数来检查文章是否可以公开查看。以前, is_post_type_viewable() 函数已经可以用来在注册文章类型时通过 publicly_que~ u . 4 v u \ C Sryable 设置确定文章类型是否对匿名用户可见 。但是,仅仅确定是否可以查看特定文- E D A #章还是不够的,因为此函数仅检查常规的文章类j Q H x ; x 1 1型设置5 ] ^ ; f e l r \。
这就是 WordPr9 3 L p N # K fess 55 G v V 2 n \ ].7 引入 is_post_status_viewable()函数的原因,该函数使开发人员可以确定文章状态是否可以公开查看。内部状态和受保护状态始终视为不可见。对于内置文章状态, 将检查 public 属性,对于- B i ] & t +自定义状态,将检查 publicly_queryable 属性。
is_post_status_viewable() 函数接受一个参数:
$post_status:文章状态名称或对象。此参数是必需的。
用法示例:
- global $post;
- $current_post_status = get_pok , N A j ? ? Zst_status( $post );
- if ( is_post_status_viewable( $cX C R S { ( Hurrent_post_status ) ) {
- echo 'This post uses a public post status';
- } else {
- echI # e Y v ` Do 'This post uses a non publi| H W , % uc post status';
- }
请注意,受密码保护的文章被认为是公开可见的,G U q B 7 `而私密文章则不可( I 4 q ! B见。
is_post_publicly_viewable()
WordPress 5.7 还引入 is_post_publiclys t m e } x # : 5_viewable() ,用于确定退出的用户是否可以查看单个文章。如果同时包含 is_post_status_viewable()和 is_post_type_viewable()返回 truS J . K ; D J T 3e 文章属性,则认为该文章可见 。
is_post_publicly_viewable() 函数接受一个参数:
$post:文章 ID 或文章对象。此参数是可选的K _ ! M N。默认情况下,它传递全局$post 对象。
用法示例:
- if ( is_post_publicly_viewable&q Q a#40;) ) [ ~ 1 E3;
- echo 'This post is publicly viewable';
- } else {
- echo 'This post is not publicly viewable';
- }
此外,这个 is_post_type_viewable() 函数已修改为,在将未注册的文章类型传递给该函数时返回 false ,以避免尝试访问非对象(non-obS r ~ S t 8ject)上的属性。