wordpress 怎么设置订阅者无权限查看评论内容

wordpress 怎么设置订阅者无权限查看评论内容,第1张

WordPress部分内容,让用户评论可见,如果你设置, 登陆用户才可以评论,还可以达到用户登陆后评论可见的效果。那么WordPress网站如何实现评论后可见隐藏部分内容?

将下面的代码添加到主题的 functionsphp 文件:

//部分内容评论可见

function reply_to_read($atts, $content=null) {

       extract(shortcode_atts(array("notice" => '<p class="reply-to-read">温馨提示: 此处内容需要<a href="" title="评论本文">评论本文</a>后才能查看</p>'), $atts));

       $email = null;

       $user_ID = (int) wp_get_current_user()->ID;

       if ($user_ID > 0) {

           $email = get_userdata($user_ID)->user_email;

           //对站长直接显示内容  

           $admin_email = "admin@ymjihecom"; //站长Email  

           if ($email == $admin_email) {

               return $content;

           }

       } else if (isset($_COOKIE['comment_author_email_' COOKIEHASH])) {

           $email = str_replace('%40', '@', $_COOKIE['comment_author_email_' COOKIEHASH]);

       } else {

           return $notice;

       }

       if (empty($email)) {

           return $notice;

       }

       global $wpdb;

       $post_id = get_the_ID();

       $query = "SELECT `comment_ID` FROM {$wpdb->comments} WHERE `comment_post_ID`={$post_id} and `comment_approved`='1' and `comment_author_email`='{$email}' LIMIT 1";

       if ($wpdb->get_results($query)) {

           return do_shortcode($content);

       } else {

           return $notice;

       }

   }

   add_shortcode('reply', 'reply_to_read');

很简单 你只需要将名字定义为 single-categoryphp 即可 比如你a分类的别名为wordpress,那就将名字命名为single-wordpressphp,这样,只要是这个分类下的文章,就会自动调用这个文件的样式,以此类推。

你这个问题我昨天不是回答过你了吗?

注:以下内容在WP

34+上测试通过current_user_can()的正确用法current_user_can()文档中有一句话要注意一下Do

not

pass

a

role

name

to

current_user_can(),

as

this

is

not

guaranteed

to

work

correctly意思是说传递用户角色名称(如author、contributor)作为参数不能100%保证返回正确的结果,正确的用法是传递$capability,从这个函数的表面意思看,参数是权限比参数是角色名称更靠谱。所以,要根据不同角色拥有的权限来判断用户角色,用户权限可以在Roles

and

Capabilities中找到。判断用户是否为管理员(Administrator)if(

current_user_can(

'manage_options'

)

)

{

echo

'The

current

user

is

a

administrator';

}判断用户是否为编辑(Editor)if(

current_user_can(

'publish_pages'

)

&&

!current_user_can(

'manage_options'

)

)

{

echo

'The

current

user

is

an

editor';

}判断用户是否为作者(Author)if(

current_user_can(

'publish_posts'

)

&&

!current_user_can(

'publish_pages'

)

)

{

echo

'The

current

user

is

an

author';

}判断用户是否为投稿者(Contributor)if(

current_user_can(

'edit_posts'

)

&&

!current_user_can(

'publish_posts'

)

)

{

echo

'The

current

user

is

a

contributor';

}判断用户是否为订阅者(Subscriber)if(

current_user_can(

'read'

)

&&

!current_user_can(

'edit_posts'

)

)

{

echo

'The

current

user

is

a

subscriber';

}用$current_user判断$current_user是WordPress的一个全局变量,当用户登录后,这个里面就会有用户的角色和权限信息。当WordPress的init

action执行后,就可以安全的使用$current_user全局变量了。在模板文件中判断登录用户是否为作者(Author)global

$current_user;

if(

$current_user->roles[0]

==

'author'

)

{

echo

'The

current

user

is

an

author';

}

在functionsphp中判断用户是否为作者(Author)add_action(

'init',

'check_user_role'

);

function

check_user_role()

{

global

$current_user;

if(

$current_user->roles[0]

==

'author'

)

{

echo

'The

current

user

is

an

author';

}

}

之所以要使用add_action(

'init',

'check_user_role'

);是因为$current_user这个全部变量到init

action执行时才完成赋值,既然要读它的内容,至少要等到它的内容准备好后再读取。functionsphp的代码先与init

action执行,所以在functionsphp中直接写global

$current_user是无法获取用户信息的。详细信息可以参考《WordPress

Actions加载顺序》。检查用户角色之前,还可以先检查一下用户是否登录

先判断下是否登录,然后获取当前用户对象,然后获取当前用户对象的信息:

if(is_user_logged_in()){

$current_user = wp_get_current_user();

    /

      @example Safe usage: $current_user = wp_get_current_user();

      if ( !($current_user instanceof WP_User) )

          return;

     /

    echo 'Username: '  $current_user->user_login  '<br />';

    echo 'User email: '  $current_user->user_email  '<br />';

    echo 'User first name: '  $current_user->user_firstname  '<br />';

    echo 'User last name: '  $current_user->user_lastname  '<br />';

    echo 'User display name: '  $current_user->display_name  '<br />';

    echo 'User ID: '  $current_user->ID  '<br />';

    }

以上就是关于wordpress 怎么设置订阅者无权限查看评论内容全部的内容,包括:wordpress 怎么设置订阅者无权限查看评论内容、如何限制WordPress用户在不同文章分类上的权限、WordPress:如何判断登录用户的角色等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9613765.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存