I have more than a hunderd posts from custom post type and I have to add custom fields to each post, I've used 'save_post' to trigger update/publish event, but for me it works only when "Publish" button is pressed on the edit page.
I want to use "Bulk Edit" to update old posts, but 'save_post' hook doesn't work for me.
Here's my code:
function wpse_75167_add_custom_meta( $post_id ) {
global $ptypes;
$cptype = get_post_type();
// Add Custom Meta to Specific Posts Only
if( !array_key_exists( $cptype, $ptypes ) )
return;
// Get Parent Venue ID
$parent_id = get_post_meta( $post_id, $ptypes[$cptype]['meta_key_parent'], true );
// Get Venue Title
if( ! $parent_id )
return;
$post_title = get_the_title( $parent_id );
// Check If Meta Key Exists
if( get_post_meta( $post_id, $ptypes[$cptype]['meta_key_sortable'], true ) ) {
update_post_meta( $post_id, $ptypes[$cptype]['meta_key_sortable'], $post_title );
} else {
add_post_meta( $post_id, $ptypes[$cptype]['meta_key_sortable'], $post_title );
}
}
add_action( 'save_post', 'wpse_75167_add_custom_meta' );

ptypesglobal defined by you? :::: Your code has to be$cptype = get_post_type($post_id);; :::: Thesave_postaction is triggered when bulk-editing. – brasofilo Dec 6 '12 at 17:21