The attachment_updated WordPress PHP action is triggered when an existing attachment is updated.
Usage
add_action('attachment_updated', 'your_custom_function', 10, 3); function your_custom_function($post_id, $post_after, $post_before) { // your custom code here }
Parameters
$post_id
(int): The ID of the attachment post.$post_after
(WP_Post): The post object after the update.$post_before
(WP_Post): The post object before the update.
More information
See WordPress Developer Resources: attachment_updated
Examples
Log attachment updates
Log attachment updates to a custom log file.
add_action('attachment_updated', 'log_attachment_updates', 10, 3); function log_attachment_updates($post_id, $post_after, $post_before) { $log_message = sprintf( 'Attachment ID %d updated from %s to %s', $post_id, $post_before->post_title, $post_after->post_title ); error_log($log_message, 3, '/path/to/your/custom/log/file.log'); }
Send email notifications on attachment updates
Send an email notification to the site admin when an attachment is updated.
add_action('attachment_updated', 'email_on_attachment_update', 10, 3); function email_on_attachment_update($post_id, $post_after, $post_before) { $subject = 'Attachment Updated'; $message = sprintf( 'Attachment ID %d has been updated from %s to %s.', $post_id, $post_before->post_title, $post_after->post_title ); wp_mail(get_option('admin_email'), $subject, $message); }
Update a custom field on attachment update
Update a custom field when an attachment is updated.
add_action('attachment_updated', 'update_custom_field_on_attachment_update', 10, 3); function update_custom_field_on_attachment_update($post_id, $post_after, $post_before) { update_post_meta($post_id, 'your_custom_field_key', 'your_custom_value'); }
Change the attachment’s author when the title is updated
Update the attachment’s author when the title is changed.
add_action('attachment_updated', 'change_author_on_title_update', 10, 3); function change_author_on_title_update($post_id, $post_after, $post_before) { if ($post_before->post_title != $post_after->post_title) { wp_update_post([ 'ID' => $post_id, 'post_author' => 'new_author_id' ]); } }
Delete a transient when an attachment is updated
Remove a transient when an attachment is updated to refresh cached data.
add_action('attachment_updated', 'delete_transient_on_attachment_update', 10, 3); function delete_transient_on_attachment_update($post_id, $post_after, $post_before) { delete_transient('your_transient_key'); }