我正在研究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
答案 0 :(得分:9)
您可以使用foreach循环来遍历数组中的每个角色。
<ul>
<?php foreach($roles as $role) { ?>
<li><?php echo $role;?></li>
<?php }//end foreach ?>
</ul>
答案 1 :(得分:4)
以下是生成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>
答案 2 :(得分:3)
由于l10n functions do not accept variables,translate_user_role()
需要正确翻译角色名称。此外,使用wp_roles()
而不是全局变量$wp_roles
是更安全的方法,因为它首先检查是否设置了全局,如果没有设置它并返回它。
$roles = wp_roles()->get_names();
foreach( $roles as $role ) {
echo translate_user_role( $role );
}
答案 3 :(得分:1)
只是一个额外的信息。还有一个函数wp_dropdown_roles(),它为您提供了作为选项html元素的角色。
<select>
<?php wp_dropdown_roles(); ?>
</select>
您还可以通过将角色slug作为参数传递来设置默认选择值。
<select>
<?php wp_dropdown_roles( 'editor' ); ?>
</select>
答案 4 :(得分: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>';