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?
Essayez ce code:
$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)
Semble être un problème commun. Essayez ce plugin:
http://wordpress.org/extend/plugins/web-ninja-comment-count-fixer/
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.