Comment classer les utilisateurs alphabétiquement par leur nom de famille?

4

J'utilise le code court et la fonction suivants pour afficher les membres de certains départements:

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>';
}

Je voudrais classer les utilisateurs par ordre alphabétique de last_name . Comment puis-je faire cela?

Cette question / réponse m'a inspiré, mais j'ai ne le comprends pas complètement.

    
posée Iurie Malai 04.09.2013 - 10:55

3 réponses

7

Pourquoi ne pas utiliser les fonctionnalités intégrées de PHP?

Placez la ligne suivante juste avant le foreach :

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

Références:

réponse donnée tfrommen 04.09.2013 - 11:00
-1

J'ai modifié votre fonction:

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>';
}

Vient d'ajouter deux paramètres supplémentaires à vos arguments

    
réponse donnée Manish 04.09.2013 - 11:22
-1

Ajoutez orderby = > last_name, order = > DESC dans votre argument get_users. J'espère que cela vous aidera.

$members = get_users( array( 'meta_key' => 'department', 'meta_value' => $department, 'orderby' => 'last_name', 'order' => 'DESC' ) ); 
    
réponse donnée ytl 04.09.2013 - 11:06

Lire d'autres questions sur les étiquettes