By default, a new site created on a multisite installation is “live” and viewable by everyone (if they know the address) right after the user creates it.
What is the best approach to changing this so that the site they register is only live when they are ready? By ready, I mean they have chosen a theme, uploaded a logo, entered their content etc and are ready for it to be publicly viewable.
My initial thoughts are to create an option in the database for each new site that by default is set to ‘0’. The new site would just display a “coming soon” page to someone that isn’t logged in. Then in the site’s theme options panel or similar, there would be a “make my site live” button which updates the option in the database and shows the correct theme.
Can anyone think of a better way?
Have you looked at the archive functionality? It allows you to archive a site (aka ‘site is not live’) and unarchive it again when the site is ready to go online. You may do so in ‘/wp-admin/network/sites.php’. The option is shown when you hover over the row with your site in it.
Another option is to make the site only available to logged in users. You may use Justin Tadlock’s Members plugin for instance to achieve this.
Simply use the WP Maintenance Mode plugin.
– Quote from WordPress Plugin Repository