I have a plugin and I would like to be able to run the post content through some filters before it is saved to the database. From looking at the plugin api, I see that two hooks that look like they might be helpful:
save_post
wp_insert_post
The only problem is that it looks like save_post
does not need return a variable, and so I don’t know how to filter the content, and wp_insert_post
looks documented.
I’d like to do something like this:
add_action('whatever_hook_name','my_function');
function my_function($post_content){
return $post_content.' <br> This post was saved on '.time();
}
I am going to do something more useful than append a timestamp, namely running some regex filters, but this is the general type of filter / action I’m trying to add.
Update
Please note that I want to intercept the data on it’s way to being saved in the database – not when it is being displayed in the post (eg: Not by adding a filter to the_content
)
The wp_insert_post_data filter can do that:
Use filter
content_save_pre
exactly likethe_content
— the difference is that it operates when a post is saved, rather than displayed.http://codex.wordpress.org/Plugin_API/Filter_Reference/content_save_pre
You can also check for the hook
pre_post_update
Add the following code to the active theme to replace
<shell>
with[shell]
before saving:If you just want to add something similar at the end of all the posts, then I would suggest you use the
the_content
filter.