I have custom fields in the user profile that displays in the team page. It reads "director" "researcher" "graduate" "intern" and some others. When adding a new team member, you pick from a select box with the options. Right now the page displays the users in date of creation order but I need to show them in hierarchy order (all directors first, then the researchers, then graduate, etc, etc). The new fields for the profile are in functions.php with the following code: <!-- ROLE --> <?php $role = get_user_meta($user->ID, 'member_role', true); ?> <table class="form-table"> <tr> <th><label for="member_role">Lab Role</label></th> <td> <select name="member_role" id="member_role"> <option value="" <?php if($role == ''){echo('selected="selected"');}?>>Choose role</option> <option value="principal-investigator" <?php if($role == 'principal-investigator'){echo('selected="selected"');}?>>Principal Investigator</option> <option value="labmanager" <?php if($role == 'labmanager'){echo('selected="selected"');}?>>Lab Manager</option> <option value="administrativeassistant" <?php if($role == 'administrativeassistant'){echo('selected="selected"');}?>>Administrative Assistant</option> <option value="postdoc" <?php if($role == 'postdoc'){echo('selected="selected"');}?>>Postdoctoral Fellow</option> <option value="gradstudent" <?php if($role == 'gradstudent'){echo('selected="selected"');}?>>Graduate Student</option> <option value="researchtech" <?php if($role == 'researchtech'){echo('selected="selected"');}?>>Research Technician</option> <option value="undergradstudent" <?php if($role == 'undergradstudent'){echo('selected="selected"');}?>>Undergraduate Student</option> <option value="labsupport" <?php if($role == 'labsupport'){echo('selected="selected"');}?>>Lab Support</option> </select> <br /> <span class="description">Please select your role at the lab.</span> </td> </tr> </table> <?php } add_action( 'personal_options_update', 'my_save_extra_profile_fields' ); add_action( 'edit_user_profile_update', 'my_save_extra_profile_fields' ); add_action('user_register', 'my_save_extra_profile_fields'); add_action('profile_update', 'my_save_extra_profile_fields'); function my_save_extra_profile_fields( $user_id ) { if ( !current_user_can( 'edit_user', $user_id ) ) return false; update_usermeta( absint( $user_id ), 'degrees_and_affiliations', wp_kses_post( $_POST['degrees_and_affiliations'] ) ); update_usermeta( absint( $user_id ), 'member_role', wp_kses_post( $_POST['member_role'] ) ); $items = array('principal-investigator', 'labmanager', 'administrativeassistant', 'postdoc', 'gradstudent', 'researchtech', 'undergradstudent', 'labsupport' ); $role = get_user_meta($user_id, 'member_role', true); $order = array_search($role, $items); update_user_meta( absint( $user_id ), 'lab_member_order', $order); } Then the code that shows the users in the page is as follows: $results = get_users(); 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->menu_order, 'dir_id' => $user->ID, 'dir_name' => $user->first_name.' '.$user->last_name, 'dir_email' => $user->user_email, ); } // 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_email = $director['dir_email']; $dir_link = get_bloginfo('home').'/?author='.$director['dir_id']; $dir_status = get_field('alumni', 'user_'.$dir_id); if ($dir_status == 0 && $dir_id !== 24) { ?> <div class="author-nucleus"> <a href="<?php echo get_author_posts_url( $dir_id ); ?>"> <div class="author-avatar"> <div class="hexa"> <div class="hex1"> <div class="hex2"> <?php echo get_wp_user_avatar( $dir_email, 'large' ); ?> </div> </div> </div> </div> </a> <div class="author-info"> <h2> <a class="author-name" href="<?php echo get_author_posts_url( $dir_id ); ?>"> <?php echo $dir_name; ?> </a><?php if($dir_email != '') { printf('<a href="mailto:%s">%s</a>', $dir_email, '<span class="dashicons dashicons-email-alt"></span>'); } ?> </h2> <hr /> <?php get_member_role($dir_id); ?> <ul class="nucleus-icons-test"> <li> <div> <img src="<?php $user_icon = get_field('user_icon', 'user_'.$dir_id); echo $user_icon['url']; ?>" /> <span><?php echo $dir_name; ?></span> </div> </li> <?php get_subjects($dir_id, 'post', 4); ?> </ul> </div> </div> <?php } } ?>