The allowed_themes WordPress PHP filter allows you to modify the array of themes that are allowed on your network.
Usage
add_filter('allowed_themes', 'your_custom_function');
function your_custom_function($allowed_themes) {
// your custom code here
return $allowed_themes;
}
Parameters
$allowed_themes(string[]): An array of theme stylesheet names.
More information
See WordPress Developer Resources: allowed_themes
Examples
Allow a specific theme
Allow the ‘twentytwentyone’ theme on the network.
add_filter('allowed_themes', 'allow_twentytwentyone_theme');
function allow_twentytwentyone_theme($allowed_themes) {
$allowed_themes['twentytwentyone'] = true;
return $allowed_themes;
}
Disallow a specific theme
Disallow the ‘twentynineteen’ theme on the network.
add_filter('allowed_themes', 'disallow_twentynineteen_theme');
function disallow_twentynineteen_theme($allowed_themes) {
unset($allowed_themes['twentynineteen']);
return $allowed_themes;
}
Allow only a list of specific themes
Allow only ‘twentytwenty’ and ‘twentytwentyone’ themes on the network.
add_filter('allowed_themes', 'allow_only_specific_themes');
function allow_only_specific_themes($allowed_themes) {
return array(
'twentytwenty' => true,
'twentytwentyone' => true,
);
}
Allow themes based on a condition
Allow a theme only if the current user is an administrator.
add_filter('allowed_themes', 'allow_theme_for_admin');
function allow_theme_for_admin($allowed_themes) {
if (current_user_can('manage_options')) {
$allowed_themes['my_custom_theme'] = true;
}
return $allowed_themes;
}
Allow all themes except a specific one
Allow all themes except the ‘twentynineteen’ theme on the network.
add_filter('allowed_themes', 'disallow_specific_theme');
function disallow_specific_theme($allowed_themes) {
if (isset($allowed_themes['twentynineteen'])) {
unset($allowed_themes['twentynineteen']);
}
return $allowed_themes;
}