82 votes

WordPress obtient l'utilisateur par les méta-données

Comment puis-je récupérer tous les utilisateurs enregistrés dans mon blog WordPress ayant des données méta particulières ?

Par exemple, j'ai créé une option permettant d'ajouter des métadonnées personnalisées pour chaque utilisateur enregistré avec la clé méta suivante parent_id . Si je veux dresser la liste de tous les utilisateurs ayant parent_id comme 2 Comment puis-je le faire ?

117voto

David Points 637

Depuis WP v3.1, il est ridiculement facile de rechercher un utilisateur par sa clé méta.

Utiliser la fonction

get_users($args)

( Documentation WP )

La fonction prend un tableau de paramètres, dans votre cas vous avez besoin de

get_users(array(
    'meta_key' => 'parent_id',
    'meta_value' => '42'
))

0 votes

Excellent. J'essayais d'utiliser l'option "meta_query", qui ne fonctionnait pas. Celle-ci a parfaitement fonctionné. Je vous remercie.

47voto

OzzyCzech Points 1509

La façon la plus simple d'obtenir un utilisateur à partir de ses métadonnées est la suivante :

$user = reset(
 get_users(
  array(
   'meta_key' => $meta_key,
   'meta_value' => $meta_value,
   'number' => 1
  )
 )
);

16 votes

Pour ceux qui n'ont besoin que de l'identifiant de l'utilisateur. Ajouter un argument de type tableau 'fields' => 'ids' . Cela rendra la requête plus légère.

15voto

pingle60 Points 166

Voici comment vous pouvez obtenir des utilisateurs en fonction d'un rôle personnalisé et de plusieurs clés de métadonnées,

$available_drivers = get_users(
            array(
                'role' => 'driver',
                'meta_query' => array(
                    array(
                        'key' => 'approved',
                        'value' => true,
                        'compare' => '=='
                    ),
                    array(
                        'key' => 'available',
                        'value' => true,
                        'compare' => '=='
                    )
                )
            )
        );

En expliquant la requête ci-dessus, je ne veux que les utilisateurs auxquels j'ai attribué le rôle de conducteur, et qui sont approuvés et disponibles. Les champs approuvés et disponibles sont des champs personnalisés créés à l'aide d'ACF en tant que champs Vrai/Faux.

Si vous avez des métadonnées supplémentaires à tester, ajoutez un autre élément au tableau meta_query.

En attendant, jetez un coup d'œil à mes sources ouvertes sur github.com/patrickingle.

4voto

JackMcE Points 358

Voici la page du codex de Wordpress détaillant comment utiliser l' get_users($arg); fonction.

Il contient des exemples de comment comment créer des fonctions personnalisées afin de récupérer les différentes parties des données de l'utilisateur. Vous aurez naturellement de construire et de faire vos propres modifications à obtenir comme vous le souhaitez.

De plus voici un lien vers une fonction de quelqu'un construit qui va récupérer les données de l'utilisateur basée sur les rôles au sein de wordpress. Vous pouvez le configurer de différentes façons, certains tweeking, mais cela vous permettra de filtrer vos résultats dans un plus puissant manière.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X