I developed a custom plugin which rewrite some content of my posts, but when i move a post to trash, the action hook ‘save_post’ is triggered and the post is not deleted.
A simplified version of my code :
add_action('save_post', 'rewrite_post', 10, 2);
function rewrite_post($post_id) {
remove_action('save_post', 'rewrite_post');
$title = preg_replace('/_/', ' ', get_the_title($post_id));
$my_post = array();
$my_post['ID'] = $post_id;
$my_post['post_title'] = $title;
$my_post['post_status'] = 'publish';
wp_update_post($my_post);
add_action('save_post', 'rewrite_post');
}
How can i prevent this hook getting triggered when i delete posts ?
It’s probably easiest to just check the post status within your function.
Untested: