0

How can I add an additional column containing the last name of the user in wp-admin/users.php? It also should be sortable.

There is a similar question here: https://wordpress.stackexchange.com/a/203478/181889 but I don't know how to work with the filter.

Thanks in advance!

1 Answer 1

0

3 Steps

  1. Add custom column
  2. Fill data in custom column
  3. Make the column sortable
//Add custom column
function my_custom_wp_filter_add_user_lastname_column($columns) {
    $columns['user_lastname'] = 'Last Name';
    return $columns;
}
add_filter('manage_users_columns', 'my_custom_wp_filter_add_user_lastname_column');

//Fill in value in custom column
function my_custom_wp_filter_add_user_lastname_column_value( $column_output, $column_name, $user_id ) {
    $user = get_userdata( $user_id );
    if ( 'user_lastname' == $column_name ) {
        return $user->last_name;
    }
    return $column_output;
}
add_filter('manage_users_custom_column', 'my_custom_wp_filter_add_user_lastname_column_value', 10, 3);


//Make the column sortable
function my_custom_wp_filter_make_user_lastname_column_sortable( $colums_to_sort ) {
    $colums_to_sort['user_lastname'] = 'last_name';
    return $colums_to_sort;
}
add_filter('manage_users_sortable_columns', 'my_custom_wp_filter_make_user_lastname_column_sortable', 10, 1);

Edit : Response to requirement of ability to sort by user's last name

Wordpress does not allow users to be sorted by last_name by default. See 'orderby' section in WP_User_Query

3
  • Thanks a lot, this is working! :) However there seems to be an issue with the correct order. link
    – lefty
    Jun 11, 2020 at 20:11
  • Wordpress stores user last_name in usermeta table hence it does not allow "ordeby" with last_name straightforward. I tried various combinations using orderby=meta_value, but didn't get it to work.
    – ViralP
    Jun 12, 2020 at 9:47
  • I didn't expect that, damn. But thanks a lot for trying! :)
    – lefty
    Jun 12, 2020 at 9:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.