web-dev-qa-db-ger.com

Abfrage Alle Benutzer, die einen Beitrag verfasst haben

Ich habe diese Frage bisher:

        $user_args = array(
            'role'    => 'frontend_vendor',
            'orderby' => 'display_name', 
            'order'   => 'ASC',      
            'number'  => $no,
            'offset'  => $offset
        );

        $user_query = new WP_User_Query( $user_args );

Jetzt möchte ich alle Benutzer abrufen, die nur Posts haben. Ich habe eine Beispielabfrage, die ich ausführen möchte. Wie mache ich das mit 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

Wenn der Benutzer keine Posts hat, sollte er nicht ausgewählt werden.

1
Marlon Buendia

füge dies in deine Argumente ein '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
    );
2
kenn

Hier sind einige mögliche Optionen:

Codex-Link

Order & Orderby Parameter wir können post_count hinzufügen, sonst gibt es keinen solchen Parameter wie "posts_per_author" existiert nicht in wp_query refrence

bitte geben Sie orderby in Ihre Anfrage an

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

Verwenden Sie die Anzahl im Code entsprechend der Anforderung.

Autoren oder Benutzer abrufen

<?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" kann in diesem Fall helfen.

bei direkter abfrage bitte diesen beitrag lesen:

Benutzer mit mindestens einem Beitrag abrufen

Vielen Dank!

0
jas