The archive_blog WordPress action fires when the ‘archived’ status is added to a site.
Usage
add_action('archive_blog', function($site_id) { // your custom code here });
Parameters
- $site_id (int): The site ID.
More information
See WordPress Developer Resources: archive_blog
Examples
Send an email when a blog is archived
Send an email to the site administrator when a blog is archived.
add_action('archive_blog', function($site_id) { $admin_email = get_option('admin_email'); $subject = "Blog Archived"; $message = "Blog with ID: {$site_id} has been archived."; wp_mail($admin_email, $subject, $message); });
Log blog archival
Log when a blog is archived in a custom log file.
add_action('archive_blog', function($site_id) { $log_message = "Blog with ID: {$site_id} was archived on " . date("Y-m-d H:i:s") . PHP_EOL; file_put_contents('archived_blogs.log', $log_message, FILE_APPEND); });
Remove blog archive date from cache
Remove the blog archive date from the cache when a blog is archived.
add_action('archive_blog', function($site_id) { $cache_key = "archive_date_{$site_id}"; wp_cache_delete($cache_key); });
Add an entry to a custom table when a blog is archived
Add a row to a custom database table when a blog is archived.
add_action('archive_blog', function($site_id) { global $wpdb; $table_name = $wpdb->prefix . 'archived_blogs'; $data = array('site_id' => $site_id, 'archived_at' => current_time('mysql')); $wpdb->insert($table_name, $data); });
Update custom post type status when a blog is archived
Update the status of custom post type ‘my_custom_post_type’ to ‘draft’ when a blog is archived.
add_action('archive_blog', function($site_id) { global $wpdb; $wpdb->update( $wpdb->posts, array('post_status' => 'draft'), array('post_type' => 'my_custom_post_type', 'blog_id' => $site_id) ); });