J'écris un plugin qui récupère des données d'un fichier XML, puis crée une publication basée sur son contenu.
Je pensais utiliser wp_insert_post()
pour publier le nouveau message, mais certaines fonctions sont reliées à publish_post
.
Après avoir creusé dans le \wp-includes\post.php
, je n’ai trouvé aucun hook d’action publish_post
déclenché par cet événement.
Il n'y avait que ces crochets liés à mon cas:
// Fires once an existing post has been updated.
do_action( 'post_updated', $post_ID, $post_after, $post_before);
// Fires once a post has been saved.
do_action( 'save_post', $post_ID, $post, $update );
//Fires once a post has been saved.
do_action( 'wp_insert_post', $post_ID, $post, $update );
Est-ce que je manque quelque chose? Ou wp_insert_post()
ne déclenche-t-il pas l'action publish_post
?
Il est déclenché dans wp_publish_post()
qui appelle:
wp_transition_post_status( 'publish', $old_status, $post );
qui déclenche des appels d'action, dynamiquement avec:
do_action( "{$new_status}_{$post->post_type}", $post->ID, $post );
où "{$new_status}_{$post->post_type}"
devient "publish_post"
dans votre cas.