编写WordPress插件时,通常需要设置选项,以便站点上的角色可以访问某些功能或内容。为此,插件开发人员需要获取站点上存在的角色列表,以便在选项中使用。因为可以创建自定义角色,所以我们不能假定默认角色是唯一可用的角色。
获取列表的最佳方式是什么?
编写WordPress插件时,通常需要设置选项,以便站点上的角色可以访问某些功能或内容。为此,插件开发人员需要获取站点上存在的角色列表,以便在选项中使用。因为可以创建自定义角色,所以我们不能假定默认角色是唯一可用的角色。
获取列表的最佳方式是什么?
角色存储在全局变量中$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>
列出(虽然在许多情况下,复选框可能会更好地用于选择谁有权访问某些内容)。
试试这个:
function get_role_names() {
global $wp_roles;
if ( ! isset( $wp_roles ) )
$wp_roles = new WP_Roles();
return $wp_roles->get_names();
}
呵呵,错过了那个解释和回答,太快了,我:)对于那些有多语言站点的,功能
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ľ
)
)
这是如何在WordPress中获取所有现有用户角色的数组,以及每个角色的功能。如果不想将其打印到屏幕上,请省略最后一行。第2行的$roles变量将保存用户和功能的数组,以便您可以根据需要使用它。有关返回的数组的示例,请参见下文。
global $wp_roles;
$roles = $wp_roles->roles;
// print it to the screen
echo \'<pre>\' . print_r( $roles, true ) . \'</pre>\';
下面是如何找到没有任何插件或功能的角色列表http://screencast.com/t/uaWsGLAR3Sh
大约一个月前,我在一个与爱好相关的托管服务器上创建了一个WordPress博客。所以,我目前还不熟悉这一点。由于我担心安全性,我做的一件事就是安装插件WP安全扫描。根据插件结果,我的网站会被检查出来,但我在结果中看到的是一个红旗:文件。wp admin中不存在htaccess/(我在那里ssh了,它不存在)好的,所以我在这个问题上做了大量的搜索,找到了太多的信息。htaccess。我在WordPress上经历了强化WordPress。org网站等,也遇到了这篇文章:http://digwp.com/201