webentwicklung-frage-antwort-db.com.de

Kann ich den Publish_post-Hook mit wp_insert_post auslösen?

Ich schreibe ein Plugin, das einige Daten aus einer XML-Datei abruft und dann einen Beitrag basierend auf dessen Inhalt erstellt.

Ich wollte wp_insert_post() verwenden, um den neuen Beitrag zu veröffentlichen, aber ich habe einige Funktionen, die mit publish_post verknüpft sind.

Nach dem Eingraben in den \wp-includes\post.php konnte ich keine publish_post-Aktions-Hooks finden, die von diesem Ereignis ausgelöst wurden.

Es gab nur diese Haken in Bezug auf meinen Fall:

// 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 );

Vermisse ich etwas? Oder löst wp_insert_post() die Aktion publish_post nicht aus?

2
Jack Johansson

Es wird ausgelöst in wp_publish_post() das aufruft:

wp_transition_post_status( 'publish', $old_status, $post );

das Aktionsaufrufe auslöst, dynamisch mit:

do_action( "{$new_status}_{$post->post_type}", $post->ID, $post );

wobei "{$new_status}_{$post->post_type}" in Ihrem Fall zu "publish_post" wird.

3
birgire