it-swarm.com.de

Zeigt die Gesamtzahl der Kommentare des Benutzers außerhalb der Schleife an

Wie zeige ich die Gesamtzahl der Kommentare eines Benutzers außerhalb von The Loop an?

Ich benutze diesen Code, um die Anzahl der Kommentare anzuzeigen innerhalb der Schleife :

    <?php
    global $wpdb;
    $user_id = $post->post_author;
    $where = 'WHERE comment_approved = 1 AND user_id = ' . $user_id ;
    $comment_count = $wpdb->get_var(
        "SELECT COUNT( * ) AS total
    FROM {$wpdb->comments}
    {$where}
");
    echo 'Comments: <strong>' . $comment_count . '</strong>';
    ?>

Das funktioniert perfekt in der Schleife. Bei dem Versuch, diesen Code außerhalb der Schleife zum Laufen zu bringen, habe ich $user_id = $post->post_author; in $user_id = get_the_author_meta( 'ID' ); geändert, aber es hat nicht funktioniert.

Das nächste, was ich war, ist mit diesem Code:

                            <?php
                            global $wpdb;
                            $where = 'WHERE comment_approved = 1 AND user_id <> 0';
                            $comment_counts = (array) $wpdb->get_results("
                                SELECT user_id, COUNT( * ) AS total
                                FROM {$wpdb->comments}
                                {$where}
                                GROUP BY user_id
                                ", object);
                            foreach ( $comment_counts as $count ) {
                                $user = get_userdata($count->user_id);
                                echo 'Comments: ' . $count->total . '
                                ';
                            }
                            ?>

Diese Echokommentare zählen jedoch für alle Benutzer wie folgt: "Kommentare: 28 Kommentare: 11 Kommentare: 55" etc

Mit welchem ​​Code kann ich die Anzahl der Kommentare des Benutzers außerhalb der Schleife anzeigen ?

4
Amanda Bynes

Sie sind bereits mit dem Code mehr oder weniger dort, Sie müssen den Code nur geringfügig ändern.

Sie erwähnen nicht, wie Sie erhalten die Benutzer-ID, aber wenn Sie die Benutzer-ID haben, die Sie überprüfen möchten, ist es ziemlich einfach, außerhalb der Schleife zu tun.

Hier ist ein einfaches Beispiel:

$userid=1;
$comment_count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) AS total FROM $wpdb->comments WHERE comment_approved = 1 AND user_id = %s", $userid ) );
echo "Number of comments for user $userid is $comment_count";

Hinweis: Der Teil der Abfrage, der "comment_approved = 1" lautet, zählt nur die genehmigten Kommentare, wenn Sie die nicht genehmigten Kommentare einschließen möchten, lassen Sie diesen Teil weg.

4
Lars Koudal