web-dev-qa-db-fra.com

Comment interroger les commentaires uniquement pour le post actuel?

J'utilise ACF et mes commentaires ont des champs personnalisés. J'ai aussi un type de poste personnalisé appelé voitures.

Ce que j'essaie de faire est de faire en sorte que les utilisateurs commentent leur consommation moyenne, puis je calcule la consommation moyenne pour une seule voiture.

Je l'ai fait et ça marche bien sauf une partie. La consommation moyenne est la même pour toutes les voitures, même chaque voiture a une consommation moyenne différente.

Par exemple:

  • Voiture 1 mi/gal (28; 25; 39 - moy. 30,6)
  • Voiture 2 mpg (44; 50 avg 47)

Et lorsque l'utilisateur se rend sur la voiture 1, la moyenne devrait être de 30,6 et la voiture 2 devrait indiquer 47. Chaque voiture a la même valeur et son poids moyen sur tous les champs (28; 25; 39; 44; 50 moyenne 37.2)

Voici mon code. J'ai suivi la documentation d'ACF pour obtenir les valeurs des commentaires

 <?php
$args             = array();
$comments_query   = new WP_Comment_Query;
$comments_count   = wp_count_comments();
$comments         = $comments_query->query($args);
if ($comments) {
    foreach ($comments as $comment) {
        $total += get_field('mpg', $comment);
    }
} else {
    echo 'No comments found.';
}
$average = $total / $comments_count->total_comments;
echo round($average, 2);
wp_reset_query();
?>

Ce code est en single-cars.php (type de message personnalisé) et il effectue le calcul, mais à partir de tous les commentaires de tous les messages, et je souhaite afficher le calcul pour une seule voiture.

Merci d'avance

1
David

Vos arguments pour la requête de commentaire sont vides. Il renvoie donc tous les commentaires de la planète. Vous devez spécifier l'ID de l'article pour obtenir les commentaires qui appartiennent à cet article.

$args = array(
    'post_id' => get_the_ID(),
);

Jetez un coup d'œil à la page du codex pour plus d'informations sur les arguments.

1
Jack Johansson