The all_themes WordPress PHP filter allows you to modify the full array of WP_Theme objects that are displayed in the Multisite themes list table.
Usage
add_filter('all_themes', 'your_custom_function'); function your_custom_function($all_themes) { // your custom code here return $all_themes; }
Parameters
- $all_themes (WP_Theme[]): Array of WP_Theme objects to display in the list table.
More information
See WordPress Developer Resources: all_themes
Examples
Remove specific theme from the list
Remove the ‘Twenty Twenty-One’ theme from the themes list.
add_filter('all_themes', 'remove_twenty_twenty_one_theme'); function remove_twenty_twenty_one_theme($all_themes) { unset($all_themes['twentytwentyone']); return $all_themes; }
Display only child themes
Show only child themes in the themes list.
add_filter('all_themes', 'display_only_child_themes'); function display_only_child_themes($all_themes) { foreach ($all_themes as $key => $theme) { if (!$theme->parent()) { unset($all_themes[$key]); } } return $all_themes; }
Display themes with a minimum rating
Display themes with a minimum rating of 4 stars.
add_filter('all_themes', 'display_min_rating_themes'); function display_min_rating_themes($all_themes) { $min_rating = 4; foreach ($all_themes as $key => $theme) { if ($theme->get('rating') < $min_rating) { unset($all_themes[$key]); } } return $all_themes; }
Sort themes by the number of downloads
Sort the themes list by the number of downloads in descending order.
add_filter('all_themes', 'sort_themes_by_downloads'); function sort_themes_by_downloads($all_themes) { uasort($all_themes, function ($a, $b) { return $b->get('downloaded') - $a->get('downloaded'); }); return $all_themes; }
Add custom data to theme objects
Add custom data (e.g., ‘is_featured’) to the theme objects in the themes list.
add_filter('all_themes', 'add_custom_data_to_themes'); function add_custom_data_to_themes($all_themes) { foreach ($all_themes as $key => $theme) { $theme->is_featured = $key === 'featured-theme-slug'; } return $all_themes; }