WordPress 用户角色列表

7

我正在进行一个WordPress项目,并且在深入研究角色等内容。

我有以下代码,基本上获取所有可用的角色:

<?php 
     global $wp_roles;
     $roles = $wp_roles->get_names();

     // Below code will print the all list of roles.
     print_r($roles);        
?>

当我运行上述代码时,我得到以下输出:
array ( [administrator] => Administrator [editor] => Editor [author] => Author [contributor] => Contributor [subscriber] => Subscriber [basic_contributor] => Basic Contributor  ) 

我希望将上述内容从数组中删除,转换为无序列表。我该如何实现?
谢谢 Dan
6个回答

10
你可以使用一个 foreach 循环来遍历数组中的每个角色。
<ul>
<?php foreach($roles as $role) { ?>
   <li><?php echo $role;?></li>
<?php }//end foreach ?>
</ul>

5
这里是制作WordPress用户角色下拉菜单的代码。
<?php global $wp_roles; ?>

<select name="role">
<?php foreach ( $wp_roles->roles as $key=>$value ): ?>
<option value="<?php echo $key; ?>"><?php echo $value['name']; ?></option>
<?php endforeach; ?>
</select>

4
由于l10n函数不接受变量, 因此需要使用translate_user_role()来正确翻译角色名称。此外,使用wp_roles()而不是全局变量$wp_roles是更安全的方法,因为它首先检查全局是否设置,如果没有设置,则会设置并返回它。
$roles = wp_roles()->get_names();

foreach( $roles as $role ) {
    echo translate_user_role( $role );
}

2

额外的信息:还有一个函数wp_dropdown_roles(),它将用户角色作为选项 HTML 元素呈现。

<select>
   <?php wp_dropdown_roles(); ?>
</select>

您可以通过传递角色缩略名作为参数来设置默认选定值。

<select>
   <?php wp_dropdown_roles( 'editor' ); ?>
</select>

0

您想显示可用的WordPress角色名称选择列表。

$roles_obj = new WP_Roles();
$roles_names_array = $roles_obj->get_names();
echo '<select name="role">';
foreach ($roles_names_array as $role_name) {
    echo '<option>'.$role_name.'</option>';
}
echo '</select>';

0

如果您正在寻找下拉选项,请使用WordPress本地函数wp_dropdown_roles,这将提供已翻译的用户角色

以下是代码示例

<select name="default_role" id="default_role">
    <?php wp_dropdown_roles( get_option( 'default_role' ) ); ?>
</select>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接