web-dev-qa-db-fra.com

comment_post action accrochée au chargement de la page plutôt qu'après qu'un commentaire a été posté

J'essaie d'appeler une fonction après l'enregistrement d'un commentaire dans la base de données, voir ci-dessous ...

add_action('comment_post', 'myFunction', 10, 2); 
do_action('comment_post', $comment_ID, $comment_approved); 

J'ai placé ce code dans mon fichier comments.php. myFunction est défini dans functions.php et est affiché ci-dessous

function myFunction($comment_ID, $comment_approved){
    Analytics::track('Posted comment!');
}

Le problème est que cette fonction est appelée chaque fois qu'une page contenant le formulaire de commentaire est chargée, pas seulement lorsqu'un commentaire est posté ...

Des idées sur pourquoi cela se produit ???

J'imagine qu'un moyen de contourner le problème pourrait être d'appeler la fonction au chargement de la page uniquement lorsque la page est chargée à partir de wp-comments-post.php, mais je ne sais pas par où commencer pour essayer d'y parvenir ...

Toute aide est appréciée!

1
slickdrick

Votre action est appelée à chaque chargement de comments.php parce que vous l'exécutez explicitement avec do_action. La fonction et add_action doivent être dans functions.php, et do_action doit être entièrement supprimé.

1
Milo