Как я могу сортировать get_users () любым значением (last_name, полями, определяемыми пользователем)

Я хочу отсортировать результат get_users() по фамилии, имени, полям, определенным пользователем, или как угодно.

Как я могу достичь этого, все еще используя get_users() ?

Solutions Collecting From Web of "Как я могу сортировать get_users () любым значением (last_name, полями, определяемыми пользователем)"

get_users() не позволяет вам напрямую сортировать по get_users() , но есть способы обойти его.

Код для get_users() говорит:

orderby – Сортировать по 'ID', 'login', 'nicename', 'email', 'url', 'registered', 'display_name', 'post_count', 'include' или 'meta_value' (запрос также должен содержать 'meta_key' – см. WP_User_Query ).

meta_value – очень мощный способ пойти сюда. Если вы выберете его, вы должны определить meta_key который затем определит порядок заказа.

meta_keymeta_key в таблице wp_usermeta для возврата meta_value . См. Get_userdata () для возможных мета-ключей.

get_userdata() может возвращать довольно много значений, возможно, достаточно, чтобы их заказать.


Примеры

Итак, если вы хотите заказать по фамилии пользователей, например, используйте get_users() следующим образом:

 $your_users = get_users('orderby=meta_value&meta_key=last_name'); 

Заказ по первому названию

 $your_users = get_users('orderby=meta_value&meta_key=first_name'); 

Заказ по дате регистрации

 $your_users = get_users('orderby=meta_value&meta_key=user_registered'); 

Вы можете, конечно, использовать order чтобы отменить порядок сортировки

 // Sorting users by registration date - ascending (standard behaviour) $your_users = get_users('orderby=meta_value&meta_key=user_registered'); // Sorting users by registration date - descending (add order=DESC) $your_users = get_users('orderby=meta_value&meta_key=user_registered&order=DESC'); 

На шаг впереди

Если вы хотите заказать пользовательские значения, которые get_userdata() не будет доставлен, вы можете передать другой параметр get_users() .

 $your_users = get_users('fields=all_with_meta'); 

Это приведет к массиву, который содержит все метаданные, которые связаны с пользователем. Затем вы можете использовать пользовательскую функцию сортировки ( через usort () ) для заказа по определенному параметру.

 $your_users = get_users('fields=all_with_meta'); // very basic comparison... function compare($a, $b) { return ($a->special > $b->special) ? -1 : 1; } usort($your_users, 'compare');