web-dev-qa-db-fra.com

Nombre de commentaires pour chaque auteur de commentaires

Dans WordPress 3.4.1: J'essaie d'ajouter le nombre total de commentaires de l'auteur de commentaires en plus de leurs informations. (nom + date/heure) dans la liste des commentaires.

Voici le code SQL que j'utilise:

$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 = '');

Fondamentalement, l'email de l'auteur sera vérifié et le nombre total de commentaires sera affiché. Mais je veux aussi que seuls les commentaires approuvés soient comptés et que je ne veuille pas que les rétroliens/rétroliens soient comptés. Le code ci-dessus renvoie une erreur de syntaxe et est probablement faux en termes de logique. Toute aide est appréciée. Merci.

3
Boutros AbiChedid

Placez ceci dans votre fichier de thème 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';
}
?>

Ce code comptera les commentaires de l'auteur et n'inclura PAS les rétroliens/rétroliens.

Alors vous l'imprimez comme ceci:

<?php echo ps_count_user_comments(); ?>

Vous pouvez essayer de l'exécuter dans votre code SQL et modifier [email protected] en votre courrier. Je suppose que votre préfixe de base de données est wp_, mais si ce n'est pas le cas, remplacez simplement wp_comments par votre préfixe.

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