web-dev-qa-db-ja.com

Wp_insert_postを使用してpublish_postフックを起動できますか?

XMLファイルからデータを取得し、その内容に基づいて投稿を作成するプラグインを書いています。

私はwp_insert_post()を使用して新しい投稿を公開することを考えていましたが、publish_postにフックされているいくつかの関数があります。

\wp-includes\post.phpを調べたところ、このイベントによって引き起こされるpublish_postアクションフックが見つかりませんでした。

私のケースに関連したこれらのフックだけがありました:

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

私は何かが足りないのですか?それともwp_insert_post()publish_postアクションを引き起こさないのですか?

2
Jack Johansson

それは wp_publish_post() で呼び出されます:

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

次のように動的にアクション呼び出しを起動します。

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

あなたの場合は"{$new_status}_{$post->post_type}""publish_post"になります。

3
birgire