wordpress 登录相关的几个函数和变量 判断登录用户的角色

1.is_user_logged_in函数

说明

根据当前访问者是否登录返回布尔值true或false。

用法

<?php if (is_user_logged_in()){ ... } ?>

示例

根据当前访问者的登录情况,使用is_user_logged_in() 函数在主题文件中展示不同输出结果。

<?php  if (is_user_logged_in()){            
           echo "Welcome, registered user!";          
         }           
         else {             
           echo "Welcome, visitor!";           
           };  
?>

参数

该函数不接受任何参数。

2.current_user_can()函数

current_user_can() 可以根据不同角色拥有的权限来判断用户角色,具体的用户权限,可以在Roles and Capabilities 中找到。

判断用户是否为管理员(Administrator)

[pcsh lang="php" tab_size="4" message="" hl_lines="" provider="manual"]

if( current_user_can( 'manage_options' ) ) {
    echo 'The current user is a administrator';
}

[/pcsh]

3.$current_user 变量

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

当WordPress的init action执行后,就可以安全的使用$current_user全局变量了。

在模板文件中判断登录用户是否为作者(Author)

[pcsh lang="php" tab_size="4" message="" hl_lines="" provider="manual"]

global $current_user;
if( $current_user->roles[0] == 'author' ) {
    echo 'The current user is an author';
}

[/pcsh]

在functions.php中判断用户是否为作者(Author)

[pcsh lang="php" tab_size="4" message="" hl_lines="" provider="manual"]

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';
    }
}

[/pcsh]

检查用户角色之前,还可以先检查一下用户是否登录

[pcsh lang="php" tab_size="4" message="" hl_lines="" provider="manual"]

<?php
      if( is_user_logged_in() ) {
          //用户已登录,检查用户角色
      }
?>

[/pcsh]

还有一种更直接的方法,例如判断当前用户是否为管理员

[pcsh lang="php" tab_size="4" message="" hl_lines="" provider="manual"]

global $current_user;
if(in_array( 'administrator', $current_user->roles )){
    echo 'administrator';
}

[/pcsh]

 

相关文章

此处评论已关闭