为了限制仅在管理员创建的帖子上使用快捷码,我需要检查查看帖子的作者是否是管理员,如代码所示if ( user_can( $post->post_author, \'activate_plugins\' ) )
. 如果不是,则返回内容,而不执行do_shortcode($content)
作用
这个current_user_can()
函数不合适,因为它检查的是当前用户,而不是文章作者。
public function check_login($atts, $content = null)
{
if (is_user_logged_in() && !is_null($content) && !is_feed())
{
return do_shortcode($content);
}
else
{
global $post;
if ($post instanceof \\WP_Post) {
if ( user_can( $post->post_author, \'activate_plugins\' ) ) {
return \'<p>You must be logged in to view this post..</p>\';
}
return $content;
}
}
}
我希望这对其他人有帮助。