WordPress hook after adding/updating post AND after insertion of post meta?
custom-post-type, hook, wordpress
Solution
There is an undocumented hook called `updated_post_meta` that does what I need.
It will pass 4 parameters to the hooked function: the meta ID, the object ID (same as the post ID), the meta key, and the meta value. In my hooked function I check to see if the meta key name is the field that I need the value of and, if so, it proceeds.
Here's what it looks like:
/**
* Use value of post meta for something when the post
* meta changes
* @param integer $meta_id ID of the meta data field
* @param integer $post_id Post ID
* @param string $meta_key Name of meta field
* @param string $meta_value Value of meta field
*/
function saveYouTubeInfo($meta_id, $post_id, $meta_key='',
$meta_value=''){
// Stop if not the correct meta key
if ( $meta_key != 'my_meta_field_name') {
return false;
}
// Function code goes here.
}
add_action('updated_post_meta', 'saveYouTubeInfo', 10, 4);
By the way, unlike `added_post_meta`, you do not replace `post` with the post type that you are targeting. In my case, the name of the post type is `videos`, but I still had to use `updated_post_meta` and NOT `updated_videos_meta`.
Problem
I have a custom post type called "videos", which also has a few custom fields defined. Upon creating or updating a "videos" post, I would like to run a function. Unfortunately, this function needs the values of the post meta data for the post that I've just created, and the usual hooks (`save_post`,`publish_post`, etc.) seem to run before the post meta is inserted into the database, so it isn't available. If I manually update the post just by clicking "Publish" without making any changes, function works properly. Is there a hook that fires later in the process, after all metadata has been inserted?