The after_switch_theme WordPress PHP action fires on the first WP load after a theme switch if the old theme still exists.
Usage
add_action('after_switch_theme', 'your_custom_function', 10, 2);
function your_custom_function($old_name, $old_theme) {
// your custom code here
}
Parameters
$old_name(string): Old theme name.$old_theme(WP_Theme): WP_Theme instance of the old theme.
More information
See WordPress Developer Resources: after_switch_theme
Examples
Clear cache after theme switch
Clears the cache when the theme is switched.
add_action('after_switch_theme', 'clear_cache_on_theme_switch', 10, 2);
function clear_cache_on_theme_switch($old_name, $old_theme) {
// Clear cache
wp_cache_flush();
}
Update theme-related options
Updates theme-related options when the theme is switched.
add_action('after_switch_theme', 'update_theme_options', 10, 2);
function update_theme_options($old_name, $old_theme) {
// Update theme options
update_option('some_theme_option', 'new_value');
}
Notify admin about theme switch
Sends an email notification to the admin when the theme is switched.
add_action('after_switch_theme', 'notify_admin_theme_switch', 10, 2);
function notify_admin_theme_switch($old_name, $old_theme) {
// Send email notification
$to = get_option('admin_email');
$subject = 'Theme switched on your WordPress site';
$message = 'The theme has been switched from ' . $old_name . ' to ' . get_option('stylesheet');
wp_mail($to, $subject, $message);
}
Backup old theme settings
Backs up the old theme’s settings when the theme is switched.
add_action('after_switch_theme', 'backup_old_theme_settings', 10, 2);
function backup_old_theme_settings($old_name, $old_theme) {
// Backup theme settings
$theme_mods = get_option("theme_mods_$old_name");
update_option("backup_theme_mods_$old_name", $theme_mods);
}
Perform custom actions on theme switch
Performs custom actions when the theme is switched.
add_action('after_switch_theme', 'custom_actions_on_theme_switch', 10, 2);
function custom_actions_on_theme_switch($old_name, $old_theme) {
// Perform custom actions
}