I want to start a new theme for my Multsite install instead of simply modifying the current theme. The problem is I have a lot of sites running on Multsite so it would be a little painful to change all my sites to the new theme one by one.
Is there a way to change the theme of sites by more then one at a time? In sites in network admin I can see a bulk actions option but when I select my sites and click apply, it does nothing (should it!?)
I wouldn’t recommend to use
update_option
for this task. Why? Because themes/plugins may useswitch_theme
action and it won’t get run in such case. And this action is pretty important – it will allow you to save your widgets for example…Another problem with Fuxias answer is that she uses
template_directory
hook. But there is no point to run it every time. If you set the theme, it is set, so you have to do it only once.Here’s the code that will loop through all subsites and set the theme to given one. Put it on your site, run once and then delete it (or comment it):
Create a MU plugin and filter
'template_directory'
.Sample code to force TwentyEleven on all sites:
You could also iterate over all blogs â use
get_blog_count()
andswitch_to_blog()
â and run the update just once.The Network enable action in
wp-admin/network/themes.php
just makes a theme available on a site, it doesnât set it as active theme.