Intereting Posts
Почему «Контактная форма 7» не обновляет библиотеку PHPmailer? Синхронизация фотографий профиля Buddypress в многоязычной сети WordPress Как удалить (0, 0) со страницы форума в bbpress Главная не показана в летней панировке Нужно добавить собственный URL-адрес rewrite для отдельного пользователя Настройка абсолютного пути загрузки изображения? нужна помощь, добавив новую боковую панель к странице, которая не может использовать шаблоны страниц -> multisite Как сделать выводные ссылки меню абсолютными in_widget_form обнаруживает идентификатор боковой панели Как извлечь информацию из результата wp_query? Как правильно позиционировать изображения с максимальной гибкостью? Скрыть содержимое из предварительного просмотра Несколько таблиц wp_options для совместного использования контента через установки Пользовательские сообщения и get_post_meta в {$ post_status} _ {$ post_type} Добавить поле ко всем пользовательским типам сообщений

Как искать пользователей на основе добавленных метаданных пользователя

Я добавил несколько новых полей в профиль пользователя (areacode, company, affiliate и т. Д.), И я хотел бы предложить способ поиска по этим полям. Пожалуйста, укажите мне в правильном направлении.

У меня просто был проект, где мне нужно было создать поиск по мета-форме пользователя, и я закончил создание короткого кода для него, я просто немного изменил его, чтобы показать вам, как заставить его работать с вашими полями, поэтому просто вставьте этот код внутри файл functions.php вашей темы или файл плагина:

add_shortcode('user_search','My_User_search'); function My_User_search($atts = null){ $out = user_search_form(); if (isset($_GET['user_search']) && $_GET['user_search'] == "search_users" && isset($_GET['search_by'])){ global $wpdb; $metakey = $_GET['search_by']; $args = array('meta_key' => $metakey); if (isset($_GET['s_value'])){ $metavalue = $_GET['s_value']; $args['meta_value'] = $metavalue; } $search_users = get_users($args); $out .= '<div class="user_search_results">'; if (count($search_users) >0){ // here we loop over the users found and return whatever you want eg: $out .= '<ul>'; foreach ($search_users as $user) { $out .= '<li>' . $user->user_email . '</li>'; } $out .= '</ul>'; }else{ $out .= 'No users found, try searching for something else.'; } $out .= '</div>'; } return $out; } //function to display user search form function user_search_form(){ $metavalue = $metakey = ''; if (isset($_GET['search_by'])){ $metakey = $_GET['search_by']; } if (isset($_GET['s_value'])){ $metavalue = $_GET['s_value']; } $re = '<div class="user_search"><form action="" name="user_s" method="get"> <label for="search_by">Search by:</label> <select id="search_by" name="search_by">'; if ($metakey != ''){ $re.= '"'; $re.= ($metakey == "nickname") ? '<option value="nickname" selected="selected">Name</option>': '<option value="nickname">Name</option>'; $re.= ($metakey == "areacode") ? '<option value="areacode" selected="selected">area code</option>': '<option value="areacode">area code</option>'; $re.= ($metakey == "company") ? '<option value="company" selected="selected">company</option>': '<option value="company">area code</option>'; $re.= ($metakey == "affiliate") ? '<option value="affiliate" selected="selected">affiliate</option>': '<option value="affiliate">area code</option>'; }else{ $re .= ' <option value="nickname">Name</option> <option value="areacode">area code</option> <option value="company">company</option> <option value="affiliate">affiliate</option>'; } $re .= ' </select> <label for="s_value">Value:</label> <input id="s_value" name="s_value" type="text" value="'.$metavalue.'"/> <input name="user_search" id="user_search" type="hidden" value="search_users"/> <input id="submit" type="submit" value="Search" /> </form></div>'; return $re; } 

Применение:

просто создайте страницу или сообщение и введите [user_search]

Есть некоторые плагины, которые вы можете предпринять, попробуйте, это может быть не совсем точно, но оно должно покрывать ваши потребности:

Искать все http://wordpress.org/extend/plugins/search-everything/

фасетный поиск http://wordpress.org/extend/plugins/faceted-search/

wp пользовательский поиск полей http://wordpress.org/extend/plugins/wp-custom-fields-search/