你好@dotty:
看一下wp_insert_post()
文件中的函数/wp-includes/post.php
(在WordPress 3.0.1的第2148至2392行。请注意,WordPress将此功能用于添加和更新帖子。)
最后,它有以下代码。从该代码中,您可以识别调用wp_transition_post_status()
(稍后会有更多内容)我们有动作挂钩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);
}