Skip to content

Instantly share code, notes, and snippets.

@mohammadYousefiDev
Last active September 23, 2023 05:10
Show Gist options
  • Save mohammadYousefiDev/97cd48f90d3ea70db62ebedf15bd950e to your computer and use it in GitHub Desktop.
Save mohammadYousefiDev/97cd48f90d3ea70db62ebedf15bd950e to your computer and use it in GitHub Desktop.
Display all roles with count like users.php in wordpress
global $role;
$wp_roles = wp_roles();
$count_users = ! wp_is_large_user_count();
$url = 'admin.php?page=dlrm-users-wallet';
$role_links = array();
$avail_roles = array();
$all_text = __( 'All' );
if ( $count_users ) {
$users_of_blog = count_users();
$total_users = $users_of_blog['total_users'];
$avail_roles =& $users_of_blog['avail_roles'];
unset( $users_of_blog );
$all_text = sprintf(
/* translators: %s: Number of users. */
_nx(
'All <span class="count">(%s)</span>',
'All <span class="count">(%s)</span>',
$total_users,
'users'
),
number_format_i18n( $total_users )
);
}
$role_links['all'] = array(
'url' => $url,
'label' => $all_text,
'current' => empty( $role ),
);
foreach ( $wp_roles->get_names() as $this_role => $name ) {
if ( $count_users && ! isset( $avail_roles[ $this_role ] ) ) {
continue;
}
$name = translate_user_role( $name );
if ( $count_users ) {
$name = sprintf(
/* translators: 1: User role name, 2: Number of users. */
__( '%1$s <span class="count">(%2$s)</span>' ),
$name,
number_format_i18n( $avail_roles[ $this_role ] )
);
}
$role_links[ $this_role ] = array(
'url' => esc_url( add_query_arg( 'role', $this_role, $url ) ),
'label' => $name,
'current' => $this_role === $role,
);
}
if ( ! empty( $avail_roles['none'] ) ) {
$name = __( 'No role' );
$name = sprintf(
/* translators: 1: User role name, 2: Number of users. */
__( '%1$s <span class="count">(%2$s)</span>' ),
$name,
number_format_i18n( $avail_roles['none'] )
);
$role_links['none'] = array(
'url' => esc_url( add_query_arg( 'role', 'none', $url ) ),
'label' => $name,
'current' => 'none' === $role,
);
}
$output = '<ul class="subsubsub">';
foreach( $role_links as $key => $role )
{
$url = $role["url"];
$output .= '<li><a href="'.$url.'">'.$role["label"].'</a></li> <span>|</span> ';
}
$output .= '</ul>';
echo $output;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment