Заказ пользователей по пользовательскому мета

Я показываю список пользователей, например:

<ul> <?php $directors = get_users('role=director'); foreach ($directors as $director) { $dir_id = $director->ID; $dir_order = get_user_meta($dir_id, 'exit_director_order', TRUE); $dir_link = get_bloginfo('home').'/?author='.$dir_id; if ($dir_id == $director_id ) { $dir_class= 'current director-'.$dir_id; } else { $dir_class= 'director-'.$dir_id; } ?> <li> <a href="<?php print $dir_link; ?>" class="<?php print $dir_class; ?>"><?php echo $director->display_name; ?></a><br> </li> <?php } ?> </ul> 

Я хотел бы заказать пользователей по dir_order (в порядке наименьшего числа до наибольшего). Эти значения хранятся в базе данных как целые числа.

Как я могу это сделать?


РЕДАКТИРОВАТЬ:

Вот решение. Комментарии включены:

 <?php $results = get_users('role=director'); foreach ($results as $result) { // Get data about each user as an object $user = get_userdata($result->ID); // Create a flat array with only the fields we need $directors[$user->ID] = array( 'dir_order' => $user->exit_director_order, 'dir_id' => $user->ID, 'dir_name' => $user->first_name.' '.$user->last_name ); } // Sort sort($directors); // The list echo '<ul id="rightcolumndirector">'; // For each result foreach ($directors as $director) { // Set up the variables $dir_id = $director['dir_id']; $dir_order = $director['dir_order']; $dir_name = $director['dir_name']; $dir_link = get_bloginfo('home').'/?author='.$director['dir_id']; // The list items echo '<li>'; echo '<a href="'.$dir_link.'" id="dir-id-'.$dir_id.'">'.$dir_name.'</a>'; echo '</li>'; } echo '</ul>'; ?> 

Solutions Collecting From Web of "Заказ пользователей по пользовательскому мета"

Вот решение. Комментарии включены:

 <?php $results = get_users('role=director'); foreach ($results as $result) { // Get data about each user as an object $user = get_userdata($result->ID); // Create a flat array with only the fields we need $directors[$user->ID] = array( 'dir_order' => $user->exit_director_order, 'dir_id' => $user->ID, 'dir_name' => $user->first_name.' '.$user->last_name ); } // Sort sort($directors); // The list echo '<ul id="rightcolumndirector">'; // For each result foreach ($directors as $director) { // Set up the variables $dir_id = $director['dir_id']; $dir_order = $director['dir_order']; $dir_name = $director['dir_name']; $dir_link = get_bloginfo('home').'/?author='.$director['dir_id']; // The list items echo '<li>'; echo '<a href="'.$dir_link.'" id="dir-id-'.$dir_id.'">'.$dir_name.'</a>'; echo '</li>'; } echo '</ul>'; ?> 

Для того чтобы все пользователи упорядочивались по настраиваемому мета-полю, в этом случае установите meta_key и meta_value или meta_value_num .

 $results = get_users( array( 'role' => 'director', 'meta_key' => 'exit_director_order', 'orderby' => 'meta_value_num', 'order' => 'ASC' ) ); 

EDIT : Это, похоже, работает и ДОЛЖНО работать. Я считаю, что он будет работать в следующей версии. Но пока это не работает.

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