Customize Admin Users Screen based on Role

Manage Columns

It’s pretty straight forward using the manage_{post-type-name}_columns filter: Just switch per $capability and unset what you don’t need in the $post_columns array.

function wpse19435_manage_columns( $posts_columns )
{
    // First role: add a column - take a look at the second function
    if ( current_user_can( $capability_admin ) )
    {
        $posts_columns['some_column_name'] = _x( 'Whatever', 'column name' );
    }
    // second role: remove a column
    elseif ( current_user_can( $capability_other_role ) )
    {
        unset( $posts_columns['comments'] );
    }
    // default
    else
    {
        // do stuff for all other roles
    }

    return $posts_columns;
}
add_filter( 'manage_{post-type-name}_columns', 'wpse19435_manage_columns' );

Add a column

function wpse19435_manage_single_column( $column_name, $id ) 
{
    switch( $column_name ) 
    {
        case 'some_column_name' :
            // do stuff
            break;

        default :
            // do stuff
            break;
    }

}
add_action('manage_{post-type-name}_custom_column', 'wpse19435_manage_single_column', 10, 2);

Leave a Comment