The save_post
action hook fires after a post is saved: every time, even for autosaves.
If you look at the reference for save_post
, you’ll see that the callback receives three parameters: the first is an integer $post_ID
, the second is a WP_Post object $post
, and the third is a boolean
$update. None of the parameters are a string of the content.
Based upon your code, it appears that you are trying to add a filter to the_content
. So your code should be:
function action_function_name_13( $content ) {
return '<div>' . $content . '</div>';
}
add_filter( 'the_content', 'action_function_name_13' );
If this isn’t what you’re trying to do, look through the hook reference for a hook that describes what you’re trying and update your question.
Here’s a way to modify the post content after it has been saved to the database.
//* save_post fires *after* the post has been saved to the database
add_action( 'save_post', 'wpse_266719_save_post', 10, 3 );
function wpse_266719_save_post( $post_ID, $post, $update ) {
//* Remove action so it doesn't fire on wp_update_post()
remove_action( 'save_post', 'wpse_266719_save_post', 10 );
$id = $post->ID;
$content = htmlspecialchars( $post->post_content, ENT_QUOTES, 'UTF-8', false );
$postarr = array( 'ID' => $id, 'post_content' => $content, );
wp_update_post( $postarr );
}