comment simplifier ma requête sous wordpress

Mammouth du PHP | 506 Messages

03 nov. 2021, 09:51

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>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

03 nov. 2021, 13:08

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.
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 506 Messages

03 nov. 2021, 13:30

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() ; }

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

03 nov. 2021, 13:58

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') ) );
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 506 Messages

03 nov. 2021, 14:28

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

Mammouth du PHP | 2703 Messages

03 nov. 2021, 14:39

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()

Mammouth du PHP | 506 Messages

03 nov. 2021, 14:44

bonjour or
merci pour l intervention

je n ai pas très bien compris