I’m trying to build a query with WP User Query where it’s possible to search after
- user_email
- user_nicename
- first_name
- last_name
This are my args:
$args = array( 'role' => 'author', 'number' => $limit, 'offset' => $offset, 'order' => $order_sort, 'orderby' => $order_by, 'search' => '*'.esc_attr( $search_str ).'*', 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'reg_complete', 'value' => 1, 'compare' => '=', ), array( 'relation' => 'OR', array( 'key' => 'first_name', 'value' => $search_str, 'compare' => 'LIKE' ), array( 'key' => 'last_name', 'value' => $search_str, 'compare' => 'LIKE' ) ), ) );
working fine if searching after first / last name… but didnt match nicenames / email
any idea how to fix that?
edit:
removed the search_columns from args and added this filter:
add_filter( 'user_search_columns', 'my_user_search_columns', 10, 3 ); function my_user_search_columns( $search_columns, $search, $this ) { $search_columns[] = 'user_email'; $search_columns[] = 'user_nicename'; return $search_columns; }
Same results as before the changes