The get_broken_themes() WordPress PHP function retrieves a list of broken themes.
Usage
$broken_themes = get_broken_themes();
Parameters
- None
More information
See WordPress Developer Resources: get_broken_themes()
Examples
Display Broken Themes
Display a list of broken themes with their respective errors.
$broken_themes = get_broken_themes(); if (!empty($broken_themes)) { echo "Broken Themes:\n"; foreach ($broken_themes as $theme_name => $theme_data) { echo "- $theme_name: {$theme_data['Description']}\n"; } } else { echo "No broken themes found."; }
Check if a Specific Theme is Broken
Check if a specific theme (e.g., “My Custom Theme”) is broken.
$theme_name = "My Custom Theme"; $broken_themes = get_broken_themes(); if (isset($broken_themes[$theme_name])) { echo "$theme_name is broken."; } else { echo "$theme_name is not broken."; }
Count Broken Themes
Display the number of broken themes.
$broken_themes = get_broken_themes(); echo "Number of broken themes: " . count($broken_themes);
Send Email Notification for Broken Themes
Send an email to the site administrator if there are broken themes.
$broken_themes = get_broken_themes(); if (!empty($broken_themes)) { $subject = "Broken themes detected on your WordPress site"; $message = "The following themes are broken:\n\n"; foreach ($broken_themes as $theme_name => $theme_data) { $message .= "- $theme_name: {$theme_data['Description']}\n"; } wp_mail(get_option('admin_email'), $subject, $message); }
Automatically Disable Broken Themes
Disable broken themes by setting a fallback theme (e.g., “Twenty Twenty-One”).
$fallback_theme = "Twenty Twenty-One"; $broken_themes = get_broken_themes(); if (!empty($broken_themes)) { foreach ($broken_themes as $theme_name => $theme_data) { if ($theme_name == wp_get_theme()->get('Name')) { switch_theme($fallback_theme); break; } } }