The ‘activate_blog’ WordPress PHP action triggers when a network site is activated.
Usage
To use this function, simply add the following code to your theme’s functions.php file or a custom plugin:
add_action('activate_blog', 'your_custom_function', 10, 1);
function your_custom_function($id) {
// Your custom code goes here
}
Parameters
- $id (int): The ID of the activated site.
Examples
Send a welcome email to the site administrator
add_action('activate_blog', 'send_welcome_email', 10, 1);
function send_welcome_email($id) {
$admin_email = get_blog_option($id, 'admin_email');
$subject = 'Welcome to the network!';
$message = 'Congratulations, your site has been activated!';
wp_mail($admin_email, $subject, $message);
}
In this example, a welcome email is sent to the site administrator when a new network site is activated.
Log activation in a custom table
add_action('activate_blog', 'log_activation', 10, 1);
function log_activation($id) {
global $wpdb;
$table_name = $wpdb->prefix . 'activations';
$current_time = current_time('mysql');
$wpdb->insert($table_name, array('site_id' => $id, 'activation_time' => $current_time));
}
This example logs the activation of a network site in a custom table with the site ID and activation time.
Create a default post on activation
add_action('activate_blog', 'create_default_post', 10, 1);
function create_default_post($id) {
switch_to_blog($id);
$post_data = array(
'post_title' => 'Welcome to our network!',
'post_content' => 'This is your first post on your new site.',
'post_status' => 'publish',
);
wp_insert_post($post_data);
restore_current_blog();
}
This example creates a default post with a welcome message when a new network site is activated.
Update permalink structure on activation
add_action('activate_blog', 'update_permalink_structure', 10, 1);
function update_permalink_structure($id) {
switch_to_blog($id);
$permalink_structure = '/%postname%/';
update_option('permalink_structure', $permalink_structure);
restore_current_blog();
}
In this example, the permalink structure of the activated site is updated to a custom format.
Assign a default theme to the new site
add_action('activate_blog', 'assign_default_theme', 10, 1);
function assign_default_theme($id) {
switch_to_blog($id);
$theme = 'my-default-theme';
switch_theme($theme);
restore_current_blog();
}
This example assigns a default theme to the newly activated network site.