Gesamtanzahl der Kommentare des Nutzers ohne Kommentare zu eigenen Beiträgen

Ich arbeite gerade an einem Plugin, das ich hier angedeutet habe und bis jetzt habe ich es geschafft, alles zu programmieren und nur ein Puzzleteil zu vermissen.

So erhalte ich die Gesamtzahl der Kommentare für den current_user :

 global $wpdb, $current_user; get_currentuserinfo(); $userID = $current_user->ID; $where = 'WHERE comment_approved = 1 AND user_id = ' . $userID ; $comment_count = $wpdb->get_var("SELECT COUNT( * ) AS total FROM {$wpdb->comments} {$where}"); echo 'Total Comments: ' . $comment_count; 

Ich möchte die Gesamtzahl der Kommentare von current_user für andere Nutzerbeiträge wiedergeben , sodass ich die Kommentare nicht auf die eigenen Beiträge des Autors zählen möchte. Ist so etwas möglich? Und wenn ja, wie?

Solutions Collecting From Web of "Gesamtanzahl der Kommentare des Nutzers ohne Kommentare zu eigenen Beiträgen"

Mir sind keine WordPress-functionen bekannt, die dies tun. Sie können also versuchen, mit dieser Art von Abfrage zu spielen (ungetestet):

 function get_custom_user_comments_count( $uid ){ global $wpdb; $sql = "SELECT COUNT(*) as total FROM {$wpdb->comments} as c JOIN {$wpdb->posts} as p ON p.ID = c.comment_post_ID WHERE c.comment_approved = '1' AND p.post_status ='publish' AND p.post_type ='post' AND p.post_author != c.user_id AND c.user_id = %d"; $comment_count = $wpdb->get_var( $wpdb->prepare( $sql, $uid ) ); return $comment_count; } 

und benutze es so:

 global $current_user; get_currentuserinfo(); echo 'Total Comments: ' . get_custom_user_comments_count( $current_user->ID ); 

Dies setzt voraus, dass die Kommentare geschrieben werden, wenn die Benutzer angemeldet sind, sodass die Spalte user_id in der Tabelle wp_comments ausgefüllt wird.

Aktualisieren:

Ein anderer Ansatz wäre, die Anzahl der Kommentare pro Benutzer im Benutzer-Meta zu sammeln. Sie könnten beispielsweise versuchen, sich in die Aktion comment_post . Dieser Ansatz könnte implementiert werden, bevor die Benutzer Kommentare auf der Site schreiben.