web-dev-qa-db-fra.com

Afficher les utilisateurs dans l'ordre par un champ méta personnalisé "commander"

Bon, voici mon code actuel (qui fonctionne, affichant les utilisateurs dans l'ordre par ID et excluant l'utilisateur admin):

$site_admin = "1";
$order = 'ID';
$user_ids = $wpdb->get_col("SELECT ID FROM $wpdb->usermeta WHERE ID != '$site_admin' ORDER BY $order"); // query users
foreach($user_ids as $user_id) : // start authors' profile "loop"
    $user = get_userdata($user_id);

    $level = $user->user_level;
    if ($level > 0) 
    { ?>

    ((information to display goes here))

   <?php  } ?>

Ce que j'aimerais faire, c'est ajouter un méta-champ (je crois que c'est la bonne terminologie, mais corrigez-le si c'est faux), et j'ai déjà ajouté cela, puis tapez un numéro pour chaque auteur.

Voici comment cela a été ajouté (dans functions.php):

<?php function my_new_contactmethods( $contactmethods ) {
$contactmethods['order'] = 'Order on the About Page'; 
return $contactmethods;
}
add_filter('user_contactmethods','my_new_contactmethods',10,1);?>

Enfin, j'aimerais afficher les utilisateurs dans cet ordre.

Il y a un certain nombre de questions connexes, mais aucune que je puisse trouver qui ordonne aux utilisateurs de champs qui sont ajoutés en plus des informations d'utilisateur Wordpress typiques (par exemple ID, nom d'utilisateur, etc.) ci-dessus avec "user_nicename" et cela fonctionne bien, mais je dois pouvoir définir manuellement l'ordre de chacun des utilisateurs, de sorte qu'aucun des champs intégrés ne fonctionnera à cette fin.

1
Jon Schroeder

Vous pouvez utiliser la fonction par défaut get_users () , puis réorganiser le résultat en fonction de la méta-id. Voici la réponse

1
ifdion