J'ai cette requête jusqu'à présent:
$user_args = array(
'role' => 'frontend_vendor',
'orderby' => 'display_name',
'order' => 'ASC',
'number' => $no,
'offset' => $offset
);
$user_query = new WP_User_Query( $user_args );
Maintenant, ce que je veux faire est d'obtenir tous les utilisateurs qui n'a que des publications, j'ai un exemple de requête que je veux faire. Comment puis-je faire cela avec wp_query()
?
SELECT users.id, posts.id
FROM wp_users
RIGHT JOIN wp_posts
ON wp_users.id = wp_posts.user_id
WHERE wp_posts.post_type = 'downloads'
AND wp_users.role = 'frontend_vendor'
ORDER BY display_name
ASC
LIMT 8
OFFEST 0
Si l'utilisateur n'a pas de message, il ne doit pas être sélectionné.
ajoutez ceci dans vos arguments 'query_id' => 'authors_with_posts',
$user_args = array(
'role' => 'frontend_vendor',
'orderby' => 'display_name',
'query_id' => 'authors_with_posts',
'order' => 'ASC',
'number' => $no,
'offset' => $offset
);
Voici ci-dessous quelques options possibles:
Order & Orderby Parameters on peut ajouter post_count, sinon aucun paramètre tel que "posts_per_author" n'existe pas dans wp_query refrence
s'il vous plaît inclure orderby dans votre requête
'orderby' => 'post_count'
FROM wp_users INNER JOIN wp_usermeta ON ( wp_users.ID = wp_usermeta.user_id ) LEFT OUTER JOIN (
SELECT post_author, COUNT(*) as post_count
FROM wp_posts
WHERE post_type = 'post' AND (post_status = 'publish' OR post_status = 'private')
GROUP BY post_author
) p ON (wp_users.ID = p.post_author)
Utilisez le nombre dans le code selon les besoins.
Obtenir les auteurs ou les utilisateurs
<?php $list = wp_list_authors('show_fullname=1&optioncount=1&orderby=post_count&order=DESC&number=3'); ?>
<?php echo"<pre>"; print_r($list); echo"</pre>"; ?>
"optioncount" peut aider dans ce cas.
avec requête directe s'il vous plaît voir ce post:
Obtenir les utilisateurs avec au moins une publication
Merci!