web-dev-qa-db-ja.com

各コメント投稿者のコメント数

WordPress 3.4.1の場合:私は彼らの情報の横にコメント投稿者のコメントの総数を追加しようとしています。コメントのリストの(名前+日付/時刻).

これが私が使っているSQLです:

$count = $wpdb->get_var('SELECT COUNT(comment_ID) FROM '. $wpdb->comments. ' WHERE comment_author_email = "' . get_comment_author_email() .'" ' AND comment_approved = '1' AND comment_type = '');

基本的に著者のEメールがチェックされ、コメントの総数が表示されます。しかし、私は承認されたコメントだけを数えたいと思います、そしてまた私はpingback/trackbacksを数えたくありません。上記のコードは構文エラーを返しており、おそらくロジックに関しては間違っています。任意の助けは大歓迎です。ありがとう。

3

これをあなたのfunctions.phpテーマファイルに入れてください:

<?php
function ps_count_user_comments() {
    global $wpdb;
    $count = $wpdb->get_var(
    'SELECT COUNT(comment_ID) FROM ' . $wpdb->comments. ' 
    WHERE comment_author_email = "' . get_comment_author_email() . '" 
    AND comment_approved = "1" 
    AND comment_type IN ("comment", "")'
    );

    return $count . ' comments';
}
?>

このコードは作者のコメントを数え、トラックバック/ピングバックを含みません。

それからあなたはこのようにそれを印刷します:

<?php echo ps_count_user_comments(); ?>

これをSQLで実行して[email protected]をあなたのメールに変更することができます。私はあなたのデータベースのプレフィックスがwp_であると仮定しますが、そうでなければ、単にwp_commentsをあなたのプレフィックスに変更してください。

SELECT COUNT(comment_ID) FROM wp_comments 
WHERE comment_author_email = "[email protected]"  
AND comment_approved = "1" 
AND comment_type IN ("comment", "")
5