In wordpress admin users listing page, wordpress admin has user search with username and email but we cannot search via display name or first name and last name.

We can add firstname, lastname and display name in users search. You just need to add following code.

/*
 * functions will be applicable for only wordpress admin
 */
if (is_admin()) {
 /*
 * Modify the User Search in Admin to include firstname, lastname and display_name
 */
 add_action('pre_user_query', 'wpapi_pre_user_query');

function wpapi_pre_user_query($user_search) {
 //die();
 global $wpdb;
 // print_r($user_search);
 $vars = $user_search->query_vars;
 if (!is_null($vars['search'])) {
 /* For some reason, the search term is enclosed in asterisks.
 Remove them */
 $search = preg_replace('/^\*/', '', $vars['search']);
 $search = preg_replace('/\*$/', '', $search);
 //print_r($search);
 //search in display name
 if(!empty($search)){
 $user_search->query_where = substr(trim($user_search->query_where), 0, -1) . " OR display_name LIKE '%". $search . "%')";
 }

 $user_search->query_from .= " INNER JOIN {$wpdb->usermeta} m1 ON " .
 "{$wpdb->users}.ID=m1.user_id AND (m1.meta_key='first_name')";
 $user_search->query_from .= " INNER JOIN {$wpdb->usermeta} m2 ON " .
 "{$wpdb->users}.ID=m2.user_id AND (m2.meta_key='last_name')";
 $names_where = $wpdb->prepare("m1.meta_value LIKE '%s' OR m2.meta_value LIKE '%s'", "%{$search}%", "%$search%");
 $user_search->query_where = str_replace('WHERE 1=1 AND (', "WHERE 1=1 AND ({$names_where} OR ", $user_search->query_where);
 }
 return $user_search;
 }

}

wordpress user search firstname lastname and display name code

wordpress user search firstname lastname and display name code

Written by Purab Kharat

My name is Purab Kharat, Here is my Personal Blog: wpapi.com. Work as an Senior Technical Lead at Smartsourcing Global Pvt Ltd in Princeton, NJ, USA. I contributor of many wordpress plugins and Drupal Modules. I am core developer of Drupal. Connect to on LinkedIn or Follow @purab on Twitter or Follow me on Google+ or Write Mail to purabdk@gmail.com or Chat with me on Skype : purabdk

This article has 6 comments

  1. theGuruWithin Reply

    I would also like this to work to be able to sort Users by Registrations date or Last Visit date which are available from s2member. Is this possible ?

  2. Kyle Reply

    Thanks for the code, works perfectly! Saved me some pain – don’t know why this isn’t included in WP core.

  3. Edge Reply

    The above code does work in adding First and Last names into the user search, BUT, in WP 4.1 it breaks the role search when clicking on any of the roles in the user admin menu.. Subscribers, Members, and whatever other roles you might have set up..

    Any Fix for this?

    • Edge Reply

      Found an alternative.. I don’t normally recommend plugins, but in order to retain the role search capabilities, I ended up adding the search function of this one to my functions.php instead..

      https://wordpress.org/plugins/full-name-search-in-wp-admin/

      Was a bit skeptical at first as it’s brand new and I was only the 13th downloader.. But the code looks rather light weight while adding both full and/or partial search capabilities to username, first, last, first-last, and email..

      With a few tweaks looks like you could even add search for other custom meta tags if you wanted, but I was just looking for something simple and lightweight, and this seems to do the job..

Leave a Comment

Your email address will not be published. Required fields are marked *