¿Cómo ordenar los usuarios alfabéticamente por su apellido?

4

Utilizo la siguiente función y código abreviado para mostrar miembros de algunos departamentos:

add_shortcode( 'list_of_members', 'members_listing' );
/* usage: [list_of_members department = 'psychology'] */

function members_listing( $department ) {

    $members = get_users( array( 'meta_key' => 'department', 'meta_value' => $department ) ); 

    echo '<ul>';
    foreach ( $members as $member ) {
        echo '<li>' . $member->first_name . ' ' . $member->last_name . '</li>';
    }
    echo '</ul>';
}

Me gustaría ordenar los usuarios alfabéticamente por last_name . ¿Cómo puedo hacer esto?

Me inspiré en esta question / answer , pero No lo entiendo completamente.

    
pregunta Iurie Malai 04.09.2013 - 10:55

3 respuestas

7

¿Por qué no usar la funcionalidad incorporada de PHP?

Coloque la siguiente línea justo antes de foreach :

usort($members, create_function('$a, $b', 'return strnatcasecmp($a->last_name, $b->last_name);'));

Referencias:

respondido por el tfrommen 04.09.2013 - 11:00
-1

He modificado tu función:

add_shortcode( 'list_of_members', 'members_listing' );
/* usage: [list_of_members department = 'psychology'] */

function members_listing( $department ) {

   $members = get_users( array( 'meta_key' => 'department', 'meta_value' => $department, 'orderby' => 'last_name', 'order' => 'DESC' ) ); 

   echo '<ul>';
   foreach ( $members as $member ) {
      echo '<li>' . $member->first_name . ' ' . $member->last_name . '</li>';
   }
   echo '</ul>';
}

Acaba de agregar dos parámetros más, dos argumentos,

    
respondido por el Manish 04.09.2013 - 11:22
-1

Agregue orderby = > last_name, order = > DESC en su argumento get_users. Espero que esto te ayude.

$members = get_users( array( 'meta_key' => 'department', 'meta_value' => $department, 'orderby' => 'last_name', 'order' => 'DESC' ) ); 
    
respondido por el ytl 04.09.2013 - 11:06

Lea otras preguntas en las etiquetas