获取WordPress网站上当前可用角色的列表?

时间:2010-09-11 作者:jerclarke

编写WordPress插件时,通常需要设置选项,以便站点上的角色可以访问某些功能或内容。为此,插件开发人员需要获取站点上存在的角色列表,以便在选项中使用。因为可以创建自定义角色,所以我们不能假定默认角色是唯一可用的角色。

获取列表的最佳方式是什么?

5 个回复
最合适的回答,由SO网友:jerclarke 整理而成

角色存储在全局变量中$wp_roles.

The ideal function is get_editable_roles() 从…起/wp-admin/includes/user.php

function get_editable_roles() {
    global $wp_roles;

    $all_roles = $wp_roles->roles;
    $editable_roles = apply_filters(\'editable_roles\', $all_roles);

    return $editable_roles;
}
“可编辑”部分是因为它为其他插件提供了筛选列表的机会,以防管理员以外的其他插件\'edit_users\' 权限(因此需要从列表中删除“admin”,否则用户可以将自己设置为admin)。用于创建自定义角色的角色管理插件将使用该过滤器。否则,此函数本质上是get_roles() (不存在)

想必你的插件只会向具有管理级别功能的人提供有问题的设置页面,比如\'manage_options\' 并且基本上是一个管理员,可以访问所有角色,因此过滤器不应该影响您。

There is also wp_dropdown_roles() 这给了你以下角色<option> a的字段<select> 列出(虽然在许多情况下,复选框可能会更好地用于选择谁有权访问某些内容)。

SO网友:Rarst

试试这个:

function get_role_names() {

global $wp_roles;

if ( ! isset( $wp_roles ) )
    $wp_roles = new WP_Roles();

return $wp_roles->get_names();
}
呵呵,错过了那个解释和回答,太快了,我:)

SO网友:Jasom Dotnet

对于那些有多语言站点的,功能

function wp_roles_array() {
    $editable_roles = get_editable_roles();
    foreach ($editable_roles as $role => $details) {
        $sub[\'role\'] = esc_attr($role);
        $sub[\'name\'] = translate_user_role($details[\'name\']);
        $roles[] = $sub;
    }
    return $roles;
}
返回如下本地化数组(角色名称为斯洛伐克语):

Array
(
    [0] => Array
        (
            [role] => administrator
            [name] => Administrátor
        )

    [1] => Array
        (
            [role] => editor
            [name] => Editor
        )

    [2] => Array
        (
            [role] => author
            [name] => Autor
        )

    [3] => Array
        (
            [role] => contributor
            [name] => Prispievateľ
        )
)

SO网友:Nuno Sarmento

这是如何在WordPress中获取所有现有用户角色的数组,以及每个角色的功能。如果不想将其打印到屏幕上,请省略最后一行。第2行的$roles变量将保存用户和功能的数组,以便您可以根据需要使用它。有关返回的数组的示例,请参见下文。

global $wp_roles;
$roles = $wp_roles->roles; 

// print it to the screen
echo \'<pre>\' . print_r( $roles, true ) . \'</pre>\';

SO网友:Manuel Costales

下面是如何找到没有任何插件或功能的角色列表http://screencast.com/t/uaWsGLAR3Sh

结束

相关推荐

Security and .htaccess

大约一个月前,我在一个与爱好相关的托管服务器上创建了一个WordPress博客。所以,我目前还不熟悉这一点。由于我担心安全性,我做的一件事就是安装插件WP安全扫描。根据插件结果,我的网站会被检查出来,但我在结果中看到的是一个红旗:文件。wp admin中不存在htaccess/(我在那里ssh了,它不存在)好的,所以我在这个问题上做了大量的搜索,找到了太多的信息。htaccess。我在WordPress上经历了强化WordPress。org网站等,也遇到了这篇文章:http://digwp.com/201