From the save_post Codex page:
save_post is an action triggered whenever a post or page is created or updated, which could be from an import, post/page edit form, xmlrpc, or post by email.
So, if you hook into save_post
you can run your filter before save:
add_action( ‘save_post’, ‘wpse_75871_save_post’ );
function wpse_75871_save_post( $post_id ) {
if ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) {
// Avoid infinite loops
remove_action( 'save_post', 'wpse_75871_save_post' );
$post = get_post( $post_id );
$your_filtered_content = get_your_filtered_content( $post->post_content );
wp_update_post(
array(
'ID' => $post_id,
'post_content' => $your_filtered_content
)
);
add_action( 'save_post', 'wpse_75871_save_post' );
}
}
You may need to do some other checking for your specific case. Let me know if you have any questions!