This is the original answer but it is little faulty, look below for the updated
您可以使用以下方法。
这个my_action_updated_post_meta
在完成后期插入或更新后执行:
// define the updated_post_meta callback
function my_action_updated_post_meta( $array, $int, $int ) {
global $post;
// see your updated post
print_r($post);
// make your action here...
die(\'after update\');
};
// add the action
add_action( \'updated_post_meta\', \'my_action_updated_post_meta\', 10, 3 );
这是函数的
documentation page.
Update
我注意到上面的回答有点错误
updated_post_meta
在管理面板中打开post for edition时也会触发操作(用于帖子更新)(因为
_edit_lock
即使当时没有做出真正的改变。
所以我改变了方法。
我使用全局变量$my_updated_flag
知道已经发生了“真正的”变化。我通过将此变量设置为“1”post_updated
行动所以如果$my_updated_flag == 1
我们知道这不仅仅是_edit_lock
改变要区分插入后操作和更新后操作,请检查$post->post_status == \'draft\'
由于新职位在现阶段处于“草稿”状态。
$my_updated_flag = 0;
// define the updated_post_meta callback
function action_updated_post_meta( $meta_id, $post_id, $meta_key, $meta_value = \'\' ) {
global $post, $my_updated_flag;
if ($my_updated_flag == 1) {
if ($post->post_status == \'draft\') {
die(\'post_inserted\');
} else {
die(\'post_updated\');
}
$my_updated_flag = 0;
}
};
add_action( \'updated_post_meta\', \'action_updated_post_meta\', 10, 4 );
function action_post_updated( $array, $int, $int ) {
global $my_updated_flag;
$my_updated_flag = 1;
};
add_action( \'post_updated\', \'action_post_updated\', 10, 3 );