Have you ever worked on a multisite with 60+ sites?
For projects of this size the deployment is a challenge in itself because you might need to:
- regenerate the thumbnails on all the 60 sites; Of course, doing it manually is a no go
- configure a certain page as homepage on all 60 sites
- if you are working with a preset theme (as we were asked to do), how do you configure 5-10 theme settings on all 60 sites in a humanly reasonable way?
- create a page with a given slug and template on all sites in a multisite install
Recently we had a project of this magnitude for TiE Global. To streamline the deployment, we wrote a few plugins that handle the deployment automation task for us. And because we’ve received so much from the open source community, we are paying it forward by publishing one of our plugins.
WPRiders Multisite Create pages plugin handles the following tasks:
- Create/update a page on all sites of a multisite install
- Optionally, set page slug
- Optionally, set the template of the page
- Optionally, set page as home
- Optionally, set page as blog
In case you are interested in how this plugin works, here are a few snippets together with technical explanations.
Create/update a page on all sites of a multisite install and set the slug
The create/update page script might timeout due to large number of websites. To avoid using php “set_time_limit” or other server settings we use ajax to execute each site update on a separate request:
Optionally, set the template of the page on all sites of a multisite
After the page has been created, one might want to actually set a template for that page across all the sites. Here’s how we do it. The code is adapted from the WordPress wp-admin back-end page editor. The same snippet sets the page as a blog page on all sites:
Full plugin code
The full source code of the working plugin can be downloaded from here.
Enjoy 🙂