Question

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

Dans le message ci-dessus, il n'y a que 4 commentaires, mais les chaussures de comptage de commentaires 8 commentaires. Je ne suis pas sûr que ce n'est pas une question liée à thème, car cela ne se produit que pour quelques messages.

show Quelqu'un peut-moi comment écrire une requête MySQL pour raconter les commentaires pour tous les messages? Ou peut-être un plug-in?

Était-ce utile?

La solution

Essayez ce code:

ATTENTION: Ceci est 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 pouvez essayer la solution de cette page (bien que ce n'est pas bonne façon que vous allez ajouter une autre requête pour chaque poste)

Autres conseils

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

http://wordpress.org/extend/plugins/web-ninja-comment- compte-fixeur /

Il y a une API Wordpress juste pour que: wp_update_comment_count ($ post_id, do_deferred $) . Certes, il fonctionne sur un seul poste, bien qu'il ait un mécanisme d'accumuler le report de plusieurs d'entre eux et simplement mettre à jour le compte en une seule fois.

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top