Page 1 sur 1

comment simplifier ma requête sous wordpress

Posté : 03 nov. 2021, 09:51
par flexi2202
bonjour a tous

je suis occupé de créer un blog sur wordpess
dans mes articles j ai ajouter une catégorie "nouveautés"

et je souhaiterais connaître le nombre de message que chaque membre a pu publier
j 'ai donc trouve une requête
que j ai un peu bricole

mais elle ne fonctionne pas vraiment

dans un premier je souhaiterais pouvoir éviter de répéter la même requête pour chaque utilisateur
dans le second temps je me retrouve avec le même nom de l auteur pour les 3 requêtes

Code : Tout sélectionner

<?php $args = array( 'author' => 1, 'cat' => 28, ); $my_query = new WP_Query( $args ); $my_count = $my_query->post_count; echo $my_count.'&nbsp recette pour &nbsp'.get_the_author() ; ?> <br> <?php $args = array( 'author' => 2, 'cat' => 28, ); $my_query = new WP_Query( $args ); $my_count = $my_query->post_count; echo $my_count.'&nbsp recette pour &nbsp'.get_the_author() ; ?> <br> <?php $args = array( 'author' => 3, 'cat' => 28, ); $my_query = new WP_Query( $args ); $my_count = $my_query->post_count; echo $my_count.'&nbsp recette pour &nbsp'.get_the_author() ; ?> <br>

Re: comment simplifier ma requête sous wordpress

Posté : 03 nov. 2021, 13:08
par @rthur
Un truc comme ça pour récupérer tous les auteurs :
https://developer.wordpress.org/referen ... mment-2112
Et dans ta boucle tu fais ta requête.

Re: comment simplifier ma requête sous wordpress

Posté : 03 nov. 2021, 13:30
par flexi2202
merci pour la réponse
de cette façon

Code : Tout sélectionner

<?php $blogusers = get_users( array( 'role__in' => array( 'author', 'subscriber' ) ) ); // Array of WP_User objects. foreach ( $blogusers as $user ) { $args = array( 'cat' => 28, ); $my_query = new WP_Query( $args ); $my_count = $my_query->post_count; echo $my_count.'&nbsp recette pour &nbsp'.get_the_author() ; }

Re: comment simplifier ma requête sous wordpress

Posté : 03 nov. 2021, 13:58
par @rthur
merci pour la réponse
de cette façon

Code : Tout sélectionner

<?php $blogusers = get_users( array( 'role__in' => array( 'author', 'subscriber' ) ) );
A mon avis tu peux même supprimer les subscriber (abonnés) car ils n'écrivent pas d'articles.
En revanche les admin et éditeurs peuvent donc j'aurai mis ça :

Code : Tout sélectionner

<?php $blogusers = get_users( array( 'role__in' => array( 'administrator', 'editor', 'author') ) );

Re: comment simplifier ma requête sous wordpress

Posté : 03 nov. 2021, 14:28
par flexi2202
merci pour la correction
cette fois j ai bien la catégorie qui est prise en compte
mais j ai deux fois le même résultat pour un seul membre
dans la catégorie nouveauté
il y a 4 articles pour le membre 1
et 1 article pour le membre 2

et pour l instant le résultat de cette requête
m indique 5 article pour le membre 1 5 article pour le membre 1

Re: comment simplifier ma requête sous wordpress

Posté : 03 nov. 2021, 14:39
par or 1
foreach ( $blogusers as $user ) {
$args = array(
'cat' => 28,
);
$my_query = new WP_Query( $args );

vu que $args ne change pas à chaque passage, il n'y a pas de raison que la requête renvoie des choses différentes.

idem pour get_the_author()

Re: comment simplifier ma requête sous wordpress

Posté : 03 nov. 2021, 14:44
par flexi2202
bonjour or
merci pour l intervention

je n ai pas très bien compris