Я реализовал пользовательский поиск в WordPress, но поиск не возвращает результаты, когда ваш поиск по user_email, только first_name & фамилия работа. Вот мой код ….
$search_string = esc_attr( $search );
$users = new WP_User_Query( array(
'search' => "*{$search_string}*",
'search_columns' => array(
'user_login',
'user_nicename',
'user_email',
'user_url',
),
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'first_name',
'value' => $search_string,
'compare' => 'LIKE'
),
array(
'key' => 'last_name',
'value' => $search_string,
'compare' => 'LIKE'
)
)
) );
$users_found = $users->get_results();
Я не могу выполнить поиск по адресу электронной почты, … Я не получаю результатов, хотя код выглядит корректно.
Вы должны написать запрос для user_email
отдельно также, как показано ниже:
$q1 = new WP_User_Query( array(
'user_email' => "*{$search_string}*",
'search_columns' => array(
'user_login',
'user_nicename',
'user_email',
'user_url',
),
);
$users = new WP_User_Query( array(
'search' => "*{$search_string}*",
'search_columns' => array(
'user_login',
'user_nicename',
'user_email',
'user_url',
),
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'first_name',
'value' => $search_string,
'compare' => 'LIKE'
),
array(
'key' => 'last_name',
'value' => $search_string,
'compare' => 'LIKE'
)
)
) );
$unique = array_unique( array_merge( $q1->get_results(), $users->get_results() ), SORT_REGULAR );
Других решений пока нет …