[wp-hackers] Using post_updated_messages filter and better code

Michael E. Hancock justmichaelh at gmail.com
Tue May 25 17:53:45 UTC 2010


Now that the $messages in /wp-admin/edit-form-advanced.php can be filtered 
by post_updated_messages it is possilble to tell the user that a particular 
post type object has been updated rather than just "Post updated".

In this example, is there a better way of manipulating the $messages array 
so the word Post (or post), gets changed to the word Book (or book)?


add_filter('post_updated_messages', 'apply_post_type_to_messages');

function apply_post_type_to_messages($messages) {
global $post_type_object;

if ( 'post' == $post_type_object->capability_type )  {
$old_label = array( 'Post', 'post' );
} else {
$old_label = array( 'Page', 'page' );
}

//for post_type book this should result in:   array('Book','book')
$new_label = array( $post_type_object->labels->singular_name, 
strtolower($post_type_object->labels->singular_name) );

$messages[$post_type_object->capability_type] = 
str_replace($old_label,$new_label,$messages[$post_type_object->capability_type]);

return $messages;

}

Thanks for your suggestions.

MichaelH 



More information about the wp-hackers mailing list