Je suis nouveau sur WordPress et php. J'aimerais écrire une fonction qui se déclenche lorsqu'un contenu spécifique est mis à jour.
Je suis tombé sur 2 actions, save_post
et post_updated
. Je ne sais pas trop quand utiliser l'un par rapport à l'autre. Je pense que celui dont j'ai besoin est post_updated
, mais je ne suis pas sûr. Je ne sais pas vraiment comment vérifier si un message spécifique est mis à jour. Je n'ai pas encore beaucoup commencé là-dessus (pour mon travail non-codant), mais voici ce que j'ai pensé jusqu'à présent, après avoir examiné d'autres suggestions:
add_action('post_updated', 'test_function');
function test_function($post_ID, $post_after, $post_before){
//check if a specific post is updated here
$post_content = $post_after->post_content;
$raw_data=array(
'updated_post_content'=>$post_content,
);
//do something
}
OK, commençons par le Codex:
est une action déclenchée chaque fois qu'une publication ou une page est créée ou mise à jour, qu'il s'agisse d'une importation, d'un formulaire de modification de publication/publication, xmlrpc ou d'une publication par courrier électronique. Les données de la publication sont stockées dans $ _POST, $ _GET ou dans le $ post_data global, selon le mode de modification de la publication. Par exemple, les modifications rapides utilisent $ _POST.
Étant donné que cette action est déclenchée juste après l'enregistrement de la publication, vous pouvez facilement accéder à cet objet de publication à l'aide de get_post ($ post_id).
Il faut 3 paramètres:
Utilisez ce crochet chaque fois que vous avez besoin de comparer les valeurs avant et après la mise à jour.
Ce hook passe jusqu'à 3 arguments, comme suit:
- $ post_ID;
- $ post_after (objet post après la mise à jour);
- $ post_before (objet post avant la mise à jour);
post_updated
est activé uniquement si la publication donnée existait avant et est actuellement mise à jour. Il ne sera pas appelé lorsqu'un nouveau message est inséré. C'est très utile, si vous voulez faire quelque chose avec la version précédente de post donné.
save_post
est activé à chaque fois qu'un message est enregistré. Vous n'avez pas un accès facile à la version précédente de l'article donné ici (vous devrez utiliser des révisions, si elles sont disponibles).
Il y a aussi une action supplémentaire, vous pouvez utiliser:
save_post_{$post->post_type}
avec les mêmes paramètres que save_post
, il est déclenché juste avant save_post
et vous pouvez l'utiliser si vous souhaitez exécuter votre code uniquement pour un type de publication donné.