wordpress列表用户角色

dan*_*nyo 5 wordpress

我正在研究wordpress项目并深入研究角色等.

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

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

     // Below code will print the all list of roles.
     print_r($roles);        
?>
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,我得到以下输出:

array ( [administrator] => Administrator [editor] => Editor [author] => Author [contributor] => Contributor [subscriber] => Subscriber [basic_contributor] => Basic Contributor  ) 
Run Code Online (Sandbox Code Playgroud)

我想将上面的内容从数组中剥离出来,只是一个无序的列表.我怎么做到这一点?

谢谢丹

Mar*_*rty 9

您可以使用foreach循环来遍历数组中的每个角色.

<ul>
<?php foreach($roles as $role) { ?>
   <li><?php echo $role;?></li>
<?php }//end foreach ?>
</ul>
Run Code Online (Sandbox Code Playgroud)


小智 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>
Run Code Online (Sandbox Code Playgroud)


Mar*_*est 5

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

$roles = wp_roles()->get_names();

foreach( $roles as $role ) {
    echo translate_user_role( $role );
}
Run Code Online (Sandbox Code Playgroud)