新しい投稿タイプ'product'
を作成したとします。この新しい'product'
投稿が作成されたときに機能(ユーザー作成)を実行する方法はありますか?
Functions.phpで:
function mynewproduct(){
myfunction();
}
add_action( 'new_product', 'mynewproduct' );
詳細および公式文書については、こちらを参照してください。
こんにちは@ dotty:
ファイル/wp-includes/post.php
内のwp_insert_post()
関数の終わりを見てください(WordPress 3.0.1。の2148行目から2392行目まで)WordPress投稿の追加と更新の両方にこの関数を使用します。)
最後に次のコードがあります。このコードからwp_transition_post_status()
の呼び出しを識別できます(詳細は後で説明します)。アクションフックedit_post
、post_updated
、save_post
、wp_insert_post
( 1つではなく、後者の2つ)ニーズに合ったものを使用できます:
<?php
wp_transition_post_status($data['post_status'], $previous_status, $post);
if ( $update ) {
do_action('edit_post', $post_ID, $post);
$post_after = get_post($post_ID);
do_action( 'post_updated', $post_ID, $post_after, $post_before);
}
do_action('save_post', $post_ID, $post);
do_action('wp_insert_post', $post_ID, $post);
return $post_ID;
また、@ Jan Fabryが言及したように、wp_transition_post_status()
にアクションフックがあります(WordPress 3.0.1の/wp-includes/post.php
の2713から2717まで) 。)3つあることに注意してください。必要に応じて使用します。
<?php
function wp_transition_post_status($new_status, $old_status, $post) {
do_action('transition_post_status', $new_status, $old_status, $post);
do_action("${old_status}_to_$new_status", $post);
do_action("${new_status}_$post->post_type", $post->ID, $post);
}
wp_transition_post_status
関数が呼び出され、これによってアクション"${new_status}_$post->post_type"
がトリガーされるため、product
がpublish
状態に移行すると、アクションpublish_product
がトリガーされます。