Вызов функции после создания новой записи для пользовательского типа WordPress?

Предположим, я создал новый 'product' типа post. Есть ли способ выполнить функцию (созданную пользователем), когда этот новый 'product' был создан?

В functions.php:

 function mynewproduct(){ myfunction(); } add_action( 'new_product', 'mynewproduct' ); 

Более подробную информацию и официальную документацию см. Здесь:

http://codex.wordpress.org/Post_Status_Transitions

Привет @dotty:

Посмотрите на конец функции wp_insert_post() в файле /wp-includes/post.php (в строках с 2148 по 2392 в WordPress 3.0.1. Обратите внимание, что WordPress использует эту функцию как для добавления, так и для обновления сообщений ).

В конце он имеет следующий код. Из этого кода вы можете идентифицировать вызов wp_transition_post_status() (подробнее об этом немного), и у нас есть действия hooks edit_post , post_updated , save_post и wp_insert_post ( честно говоря, я не знаю, почему у нас есть два последних, а не один . ) Вы можете использовать любой из тех, которые подходят для ваших нужд:

 <?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() (с 2713 по 2717 из /wp-includes/post.php в WordPress 3.0.1.) Обратите внимание, что есть три из них; использовать по мере необходимости:

 <?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 функция wp_transition_post_status , и это вызовет действие "${new_status}_$post->post_type" , поэтому, если product перейдет в состояние publish , действие publish_product будет publish_product .