私はこれまでのところこの質問をしています:
$user_args = array(
'role' => 'frontend_vendor',
'orderby' => 'display_name',
'order' => 'ASC',
'number' => $no,
'offset' => $offset
);
$user_query = new WP_User_Query( $user_args );
今私がやりたいことは、投稿のみを持つすべてのユーザーを取得することです。どのように私は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
ユーザーに投稿がない場合は、選択しないでください。
これをあなたの引数に追加してください'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
);
これがいくつかの可能なオプションの下にあります:
注文と注文のパラメータpost_countを追加することができます。そうでなければ、 "posts_per_author"のようなパラメータが存在しませんwp_query refrenceに存在しません。
クエリにorderbyを含めてください
'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)
要件に応じてコードでカウントを使用してください。
<?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"が役立ちます。
直接の質問でこの記事を見てください:
ありがとうございます。