web-dev-qa-db-fra.com

Réinitialisation du nombre de commentaires

Récemment, j'ai dû passer à un autre domaine et recréer toutes mes tables MySQL sur le serveur d'enw. J'ai remarqué que pour certains messages, le nombre de commentaires est doublé. Exemple - http://inversekarma.in/scraps/you-dont-mess-with-the-rajinikanth/ .

Dans le post ci-dessus, il n'y a que 4 commentaires, mais le compte compte chaussures 8 commentaires. Je ne suis pas sûr que ce ne soit pas une question de thème, car cela ne se produit que pour quelques articles.

Quelqu'un peut-il me montrer comment écrire une requête MySQL pour relater les commentaires de tous les articles? Ou peut-être un plugin?

6
GPX

Essayez ce code:

AVERTISSEMENT: CECI IS JUSTE PSEUDOCODE!

$entries = $wpdb->get_results("SELECT * FROM wp_posts WHERE post_type IN ('post', 'page')");

foreach($entries as $entry)
{
    $post_id = $entry->ID;
    $comment_count = $wpdb->get_var("SELECT COUNT(*) AS comment_cnt FROM wp_comments WHERE comment_post_ID = '$post_id' AND comment_approved = '1'");
    $wpdb->query("UPDATE wp_posts SET comment_count = '$comment_count' WHERE ID = '$post_id'");
}

Ou vous voudrez peut-être essayer la solution de cette page (bien que ce ne soit pas la bonne façon, car vous ajouterez une autre requête pour chaque message)

5
ariefbayu

Semble être un problème commun. Essayez ce plugin:

http://wordpress.org/extend/plugins/web-ninja-comment-count-fixer/

5
Jon

Il existe une API Wordpress juste pour cela: wp_update_comment_count ($ post_id, $ do_deferred) . Certes, il fonctionne sur un seul poste, bien qu'il dispose d'un mécanisme différé pour en accumuler un grand nombre et pour mettre à jour le nombre en une fois.

1
UncleZeiv