The add_attachment WordPress PHP action fires when an attachment is added to a post.
Usage
add_action('add_attachment', 'your_function_name');
function your_function_name($post_id) {
// your custom code here
}
Parameters
- $post_id (int): The ID of the attachment.
More information
See WordPress Developer Resources: add_attachment
Examples
Add a custom metadata to an attachment
Automatically add custom metadata when an attachment is added.
add_action('add_attachment', 'add_custom_metadata');
function add_custom_metadata($post_id) {
add_post_meta($post_id, 'custom_meta_key', 'custom_meta_value', true);
}
Send an email notification when an attachment is added
Send an email notification to the admin when a new attachment is added.
add_action('add_attachment', 'send_email_notification');
function send_email_notification($post_id) {
$admin_email = get_option('admin_email');
$subject = 'New Attachment Added';
$message = 'A new attachment with ID ' . $post_id . ' has been added.';
wp_mail($admin_email, $subject, $message);
}
Log attachment addition
Log attachment addition events in a custom log file.
add_action('add_attachment', 'log_attachment_addition');
function log_attachment_addition($post_id) {
$log_message = 'Attachment with ID ' . $post_id . ' added on ' . date('Y-m-d H:i:s') . PHP_EOL;
error_log($log_message, 3, '/path/to/your/attachment_log.txt');
}
Set attachment title based on file name
Automatically set the attachment title based on its file name.
add_action('add_attachment', 'set_attachment_title');
function set_attachment_title($post_id) {
$file_name = basename(get_attached_file($post_id));
$new_title = preg_replace('/\.[^.]+$/', '', $file_name);
wp_update_post(array('ID' => $post_id, 'post_title' => $new_title));
}
Add an attachment to a specific category
Automatically add an attachment to a specific category when it is added.
add_action('add_attachment', 'assign_attachment_category');
function assign_attachment_category($post_id) {
$category_id = 10; // The ID of the category you want to add the attachment to
wp_set_object_terms($post_id, $category_id, 'category');
}