Dans cette série, nous nous sommes penchés sur la manière dont WordPress peut être utilisé pour développer des applications Web, un peu comme un certain nombre de frameworks et d’autres outils disponibles..
À partir du dernier article, nous avons commencé à examiner les différentes options que nous avons en ce qui concerne l’interrogation des données WordPress. Tout d'abord, nous avons examiné WP_Query
.
Dans cet article, nous allons continuer à examiner les options disponibles pour extraire des informations de la base de données en examinant: WP_User_Query
après quoi, nous allons nous intéresser à la manière dont nous pouvons exécuter des requêtes SQL directes sur la base de données..
Mais pour l'instant, jetons un coup d'œil à ce que WordPress nous propose pour gérer nos utilisateurs, leurs informations et leurs métadonnées associées..
Avant de discuter de l'API réelle, passons rapidement en revue certaines informations relatives à la base de données WordPress afin que nous ayons défini un niveau commun d'informations pour le reste de l'article, l'API et les exemples que nous avons utilisés. je couvrirai.
Dans le dernier article, nous avons mentionné trois points spécifiques:
Quand nous avons couvert WP_Query
, nous avons examiné comment il peut être utilisé pour récupérer des publications, des pages, des types de publication personnalisés, des taxonomies connexes, des catégories, des termes, etc..
De même, WP_User_Query
offre une grande partie des mêmes fonctionnalités mais dans le contexte des utilisateurs. Le Codex définit la requête:
WP_User_Query est une classe,…, qui permet d'interroger les tables de base de données WordPress 'wp_users' et 'wp_usermeta'..
Contrairement à la définition initiale de WP_Query
, c'est moins technique et relativement facile à comprendre notamment si vous connaissez le wp_users
table et le wp_usermetadata
les tables.
Mais si vous ne l'êtes pas, pas de problème: nous allons couvrir tout ce qui est nécessaire non seulement pour comprendre les tables, mais également pour comprendre l'API..
le wp_users
table et le wp_usermetadata
les tables sont responsables du stockage des données utilisateur.
Les informations pour chacun des tableaux sont disponibles dans le Codex (que vous pouvez trouver ici et ici), et je recommande à tout le monde de les consulter. Toutefois, les informations relatives à chaque table peuvent être simplifiées comme suit:
Pour voir cela en action, vous pouvez jeter un coup d'oeil sur n'importe quelle information de la table de la base de données WordPress, et vous verrez que c'est ici que des informations telles que Prénom, Nom, Capacités, etc.
La bonne chose est que si vous construisez une application, la méta-table offre beaucoup de flexibilité quant à la quantité d'informations que vous pouvez vraiment associer à n'importe lequel de vos utilisateurs..
Tout d’abord, notez que la configuration d’une requête utilisateur ressemble beaucoup à la configuration d’un WP_Query
. Je veux dire par là que vous saisissez une instance de la classe en passant un tableau d’arguments dans le constructeur.
Maintenant, en ce qui concerne les arguments, tout ce qui est contenu dans les tables de base de données associées peut être spécifié. Par exemple, vous pouvez effectuer une recherche en utilisant:
Mais il y a plus que ça. Vous pouvez également spécifier des paramètres relatifs aux métadonnées pour pouvoir interroger différents utilisateurs, par exemple, en fonction de leur rôle et d'une collection de métadonnées utilisateur..
Nous examinerons cela un peu plus en détail dans un instant, mais il convient également de noter que vous pouvez construire des requêtes encore plus sophistiquées, qui incluent notamment des métadonnées utilisateur, des métadonnées utilisateur, comment et désirant commander les données (par exemple, en indiquant un nom d'utilisateur croissant), et même des paramètres de pagination pour pouvoir parcourir facilement les enregistrements d'utilisateurs.
Bien sûr, à quoi sert-il de parler d'une API sans chercher à savoir comment l'utiliser? Dans l'exemple suivant, nous allons prendre un exemple de comptes d'utilisateur, puis itérer sur la requête jusqu'à ce que nous en ayons construit un qui tente de démontrer diverses fonctionnalités fournies..
Cela dit, disons que nous voulons atteindre les objectifs suivants:
Alors, commençons. Rappelez-vous que nous allons construire cette requête ligne par ligne, elle devrait donc être relativement facile à comprendre car elle continue d'évoluer..
Si, à un moment quelconque, vous avez des questions sur ce qui se passe, n'hésitez pas à les laisser dans les commentaires..
Tout d'abord, nous voulons spécifier que nous voulons inclure tous les administrateurs:
$ args = array ('role' => 'Administrateur'); $ user_query = new WP_User_Query ($ args);
Après cela, nous voulons nous assurer qu'ils ont leur prénom et leur dernier nom spécifiés. Puisque ces informations sont stockées dans la table de métadonnées, nous aurons besoin de paramètres utilisateur pour la méta requête..
Plus précisément, nous allons demander de récupérer tous les administrateurs dont le prénom est spécifié (ou plutôt vide)..
$ args = array ('role' => 'Administrateur', 'meta_query' => array ('meta_key' => 'prenom', 'meta_value' => "meta_compare '=>'! = ')); $ user_query = new WP_User_Query ($ args);
Ensuite, nous allons classer les résultats par date d’enregistrement des administrateurs en ordre croissant:
$ args = array ('role' => 'Administrateur', 'meta_query' => array ('meta_key' => 'prenom', 'meta_value' => "meta_compare '=>'! = ')' orderby '=> 'registered', 'order' => 'ASC'); $ user_query = new WP_User_Query ($ args);
Et enfin, nous dirons que nous voulons retirer cinq disques à la fois:
// Le nombre d'enregistrements à afficher sur une page $ display_count = 5; // Nous devons connaître le numéro de la page en cours. // Ceci est utile pour calculer le décalage approprié $ page = get_query_var ('paged')? get_query_var ('paginé'): 1; // Ensuite, calculez le décalage $ offset = ($ page - 1) * $ display_count; $ args = array ('role' => 'Administrateur', 'meta_query' => array ('meta_key' => 'prenom', 'meta_value' => "meta_compare '=>'! = ')' orderby '=> 'registered', 'order' => 'ASC', 'number' => $ display_count 'offset' => $ offset); $ user_query = new WP_User_Query ($ args);
Et nous avons fini. Maintenant, il suffit de parcourir la requête pour afficher nos résultats. Malheureusement, nous pouvons tous avoir une vision différente de la manière dont nous voulons procéder. Notez donc que la boucle que je montre n’est qu’un exemple (par opposition à la Exemple):
// S'il existe des résultats basés sur nos critères… $ results = "; if (! Empty ($ user_query-> results)) // Pour chacun des résultats, affichons le nom de l'administrateur foreach ($ user_query-> results comme $ user) $ results. = 'Le nom d'affichage est:'. $ user-> nom_écran; $ results. = '
'; $ résultats. = get_user_meta ($ user-> ID, 'prénom_nom', true); $ résultats. = '
'; // Affiche les informations à l'écran. echo $ résultats;
Et remarque: une différence de WP_User_Query
contre WP_Query
est qu'il n'y a pas besoin de réinitialiser tout type de données de publication parce que nous ne travaillons pas avec autre chose qu'une boucle autonome.
À ce stade, la quête se pose naturellement de quand est une bonne idée d'utiliser WP_User_Query
, et vous obtiendrez probablement des réponses différentes de personnes différentes, comme l'aperçu d'utiliser d'autres méthodes pour récupérer leurs informations.
Mais, en général, si je vais récupérer des informations de la base de données qui traite directement et strictement avec les utilisateurs, alors j'utilise WP_User_Query
.
Maintenant, puisque l'ensemble de résultats peut être renvoyé d'une manière qui pourrait être techniquement fusionnée, ou au moins retravaillée avec un autre ensemble de données, il est certainement possible de le faire; Cependant, je pense personnellement que cela nécessite un peu d'expérience qui peut ne pas convenir à tout le monde.
En d'autres termes, n'hésitez pas à l'utiliser comme bon vous semble, mais faites-le avec prudence.
Donc avec WP_Query
et WP_User_Query
derrière nous, nous avons encore une API sur laquelle nous pouvons regarder pour compléter notre discussion, et c'est la possibilité d'interroger directement la base de données WordPress.
Dans le dernier article traitant des requêtes, nous allons jeter un coup d'œil à cette API, terminer notre discussion, puis passer à la dernière analyse de tout ce que nous avons couvert tout au long de cette série..