
Ever get tired of installing and setting up WordPress yet again so you can show a client a theme in development? Why yes, there is an easier way.
Enter WordPressMU, the multi-user, multi-blog version of WordPress which will soon be merged into the core. For those of you ready to jump-start some development, read on.
Installing WPMU is a slightly different process than regular WP. Basically, don’t edit the config file. Let the installer run. For the purposes of this tutorial, pick a subdirectory installation to give you client blogs in the format of yourdevsite.com/client1/.This way, we won’t have to tinker with the server to enable wildcard subdomains.
Now that we are up and running, the biggest difference you will notice is that WPMU has an additional backend menu: the Site Admin menu. Upon installation a site admin is created, as well as the main site blog. This user has access to everything on the system, whether they are listed as a user on that blog or not. They are a Super User. Get familiar with the site admin menus, as this is where you enable some sitewide features, add new blogs, edit some member blog details, and generally do some admin work.
There are two sub-menu items disabled: the theme editor and the plugin editor. This is mainly because on a live site, when used as a free blog host, this can be really dangerous. One wrong edit to a plugin and you bring down everyone’s blog. One oops to a theme and it affects everyone using that theme. Since users can’t edit themes, you may want to make extensive use of theme options pages, since they are set on a blog by blog basis.
Also in WPMU there is a multitude of code that gets stripped out by default. Think of how WordPress.com works; you’re essentially using the same software. Since you’re the one in charge and hosting it for a limited number of users, I’ll get into how we can workaround some issues.
The first thing you may want to do is pick a fairly sedate theme for the main blog and set a welcome page as the front page. It should only be seen by client or someone who just wanders by, so something brief is fine. You could also include a login widget in the sidebar, so clients have a way to login. I’m assuming here you’re setting up a complete new site, and not one where the main blog is in use.
Set your registration to closed. It is set this by default, so you’re good to go. This will keep out random people and sploggers trying to set up shop. A splog is the term for Spam Blog.
How Plugins Are Used in WPMU
There are two plugins folders under WPMU. One is the regular plugins folder, the other is called mu-plugins. This folder is for wpmu-specific plugins and any code placed in here gets executed automatically. It does not recognize plugins contained within subfolders; there must be a file in the main folder for it to run. Any plugin requiring activation will not work porperly if placed in this folder. Also, none of the mu-plugins will show up on a list in the admin area. If it adds a user menu, you will see it.
As for the regular plugins folder, this is shared across user blogs, so each blog has access to the same list of plugins. This is disabled by default but still viewable to Site Admins. The Plugins menu can be turend on under the Site Admin -> Options menu. Regular plugin settings will apply to that blog only. They do not apply sitewide unless the plugin was specifically built to work that way.
While there are quite a number of plugins that have issues with working under WPMU, some of these are being fixed, and other plugins work just fine. Enabling plugins on a blog-by-blog basis and having it specific to that blog works in most cases. The trouble usually comes up in sitewide activation, or getting global results from all blogs, because many regular WP plugins aren’t multi-blog aware. Your best bet is to try a few plugins that do the same thing, and ask around the forums or on twitter.
Plugins We Need for a Client Development Site
All of the plugins below go in the mu-plugins folder.
The More Privacy plugin will help you achieve privacy for your clients. It adds these privacy options to the two defaults:
- Blog Visibility
- I would like my blog to be visible to everyone, including search engines (like Google, Sphere, Technorati) and archivers and in public listings around this site.
- I would like to block search engines, but allow normal visitors
- I would like only logged in users to see my blog.
- I would like only logged in users who are registered subscribers to see my blog.
- I would like only administrators of this blog, and network to see my blog.
Only the first option will let Google crawl the blog.
New blog defaults – this little plugin adds some extra options to the Site Admin menu so every time you add a new blog, these defaults are already in place. The options included are everything on the blog’s options page, as well as the default theme. This can eliminate a couple of steps in setting up each new blog.
Unfiltered MU will allow everyone on the site to paste code like javascript or styling into posts or text widgets, as if they were an admin on a regular WordPress blog. It does not allow php code. You’ll still need to add allow php, if you really need it. You won’t see anything happen when you add it, but if you have tried saving a post in WPMU that has code, it will no longer get stripped out.
As we are working on a closed system, this is okay. All of the plugins I’ve mentioned above go in the mu-plugins folder, as we want these to run constantly.
Setting Up Each Client’s Blog
You can add new blogs to the system very easily. Visit Site Admin -> Blogs and at the bottom, simply fill out the blog name and admin email. I generally like to be the admin of each blog.

Add the client as a user to the site under Site Admin -> Users. Email them separately to let them know to expect the user/pass email. Now you have to add them as a user to their blog. You can do this in the backend of their blog (under the Users menu), or you can also add them under Site Admin -> Blogs, then hover over their blog until the edit menu appears underneath their name. Click to edit their blog details. On the right is a drop-down to add them to this blog. Pick their user level, depending. I find Editor is usually a good role. Click the button to save.

Working on Client Themes
When you add a theme to WPMU, it will show you a message that it needs to be activated sitewide. You may not wish to have all themes available in each blog’s Appearance menu, so here’s how to enable a theme for one blog.
Visit Site Admin -> Blogs and find the blog name in the list. Click to edit the details. On the right, you’ll see a list of disabled themes with checkboxes. Check the one you want to allow for just this blog, and save.
When working on themes, you may wish to just work on them offline, then upload the changes for the client to view. If you need to make minor changes, enabling the theme editor can be accomplished by editing /wp-admin/imcluded/mu.php file and comenting out at line 1216 as follows:
$pages = array( 'theme-editor.php', 'plugin-editor.php' ); foreach( $pages as $page ) { if ( strpos( $_SERVER['PHP_SELF'], $page ) ) { wp_die( __('Page disabled by the administrator') ); } }
To comment this out, put a double-forwardslash at the beginning of the first line, like this: //
While this enables both the theme and plugin editors, they are still removed from the menu system. Save the following code as a php file and place it in the mu-plugins folder.
<?php function ra_add_theme_editor_menu() { global $submenu; $submenu['wpmu-admin.php'][] = array(__('Theme Editor'), 'edit_themes', 'theme-editor.php'); } add_action('_admin_menu','ra_add_theme_editor_menu', 99); ?>
This adds the menu items back, but places them under the site Admin menu. If a client attempts to access the theme editor directly by typing it in, they will still be denied permission.
Now you have your very own exclusive client development site. Clients will be able to login to their development blog to check on progress, just as if it were a stand-alone blog. You’ll be able to move their theme after they approve it, and even Export any content used on the dev blog.
Custom Search
Lungu Alin (6 comments)31 August 09
Thanks for tutorial !
Jauhari (5 comments)2 September 09
Avesome Gravatar dude
Don Sele (2 comments)7 October 09
Funny avatar!
Lungu Alin (6 comments)30 November 09
Thanks
)
andrea_r (19 comments)31 August 09
You’re welcome.
Let me know if you try it out.
Lungu Alin (6 comments)31 August 09
I think it I try
Dane Morgan (1 comments)31 August 09
Terrific use of MU. I love finding neat secondary uses for things like this. Thanks!
andrea_r (19 comments)31 August 09
It can be a real timesaver.
Andy Symonds (1 comments)1 September 09
Great article / tutorial Andrea.
I have been doing this for a while but there are a few plugins there that I will take a closer look at. Keep up the great work!
andrea_r (19 comments)1 September 09
The plugins I mentioned are ones I use regularly – they’re great.
Joomla Coder (1 comments)1 September 09
Great tutorial. How easily you explained the concepts. Thanks for sharing your knowledge.
Joomla Coder
website laten maken (8 comments)1 September 09
This is interesting and could save lots of time! Thanks!
Wayan Parmana (1 comments)2 September 09
thanks for the tutorial…very helpfull for me…
Yonglin (1 comments)3 September 09
Awesome tutorial! Look like wpmu worth a try! =D Thanks!
Josh (3 comments)3 September 09
Great tutorial. Thanks for breaking MU down for us. This will help out a bunch!
andrea_r (19 comments)4 September 09
Glad you all liked it – if you do give it a try and have any issues, just let me know.
Robertino (2 comments)5 September 09
Hi Andrea,
Thanks for this.
This looks like it can come in handy for me because I’m tinkering with the idea of setting up minisites to either keep myself or flip.
You conclude with ” ….. , and even Export any content used on the dev blog.”
Is it possible to export content in a format suited to regular WP blogs ?
I’m asking because each WPMU blog adds 8 more tables to the database.
andrea_r (19 comments)12 September 09
WPMU has the same Export menu in the backend as a regular WP blog. You can use that to Import in to a stand-alone WP install.
The extra tables MU adds for each blog are almost identical to the tables on a single WP.
Robertino (2 comments)12 September 09
Hi Andrea,
Thanks for coming back on this.
I realise what you are saying, but I had hoped that you knew of a better way.
Because I would still have to change the table name prefixes in the backup files with scan and replace in an editor. And I forsee problems with the options file. Messy.
But there seems to be no other way.
I’ll probably go for a SQL copy session between to databases.
P.S.
“sew warm quilts” ?
Probably with a huge WPMU logo.
Daniel (10 comments)9 September 09
Great post, thank you! I talked to you on twitter about this, but just to clarify: couldn’t this same setup be used for live client sites? With a dedicated server and a domain-mapping/multi-site plugin this seems like a great solution, would make administration and updates to WordPress much easier. Or is there something I’m missing that might make it unadvisable?
andrea_r (19 comments)9 September 09
The same setup can and has been used to do this for live sites. Totally do-able, and yes it scales.
Harsh Agrawal (2 comments)13 September 09
I’m still looking for the best way to transfer m Wp blog to Wordpress mU blog. Still no luck with it
Andrea_R (19 comments)21 September 09
In simple terms, you have to Export your WP blog, install WPMU then Import.
You also have to move over al your themes & plugins, and set them all up.
Tina (2 comments)16 September 09
Glad to find a blog talking about WPMU with some practical advice. In the past I’ve not found much insight for the business owner (with technical background) to determine which environment makes sense when hosting a large number of blogs.
Madeline Ong (2 comments)24 September 09
This is a very helpful post. I especially like the plugin suggestions. Thank you! WPMU is great for development, but it’s even better if you’re hosting your client’s site as well.
Todd Bryson (1 comments)7 October 09
Is it possible to add a bunch of plug ins to mu and then one click install new blogs and have all of your plugs ins install to the new blog?
Andrea_R (19 comments)7 October 09
The plugins are all in one folder that is shared between users. So, once you install a plugin, it’s available to all members blogs instantly, as well as for any new blogs.
Don Sele (2 comments)7 October 09
Thanks.
I will implement your suggestion.
Great work here
Brent Gairy (1 comments)20 October 09
Very insightful post, I am wondering however if this will work for sites using Wordpress as a CMS rather than just themes. I want to use Wordpress MU for developing client sites and then exporting them to the client’s server and keeping the original as sort of an archive.
Andrea_R (19 comments)20 October 09
Yep, that’ll work to. You may have to export a bit extra out of the db (depending on if you want more than the content) but it’s all the same principle.
Steve (8 comments)3 November 09
Just what I was looking for! Thanks!
Kathleen (1 comments)3 November 09
Brilliant Tutorial! Will save a lot of time. Thank you
Eddi Hughes (1 comments)7 December 09
Thank you Andrea! I guess I can consider myself a fan of your writing. I appreciate it!
Paul @ HeadwayTips (3 comments)24 December 09
Brilliant article – only just found this site – and it’s full of very useful and practical stuff.
Using MU for client sites is a simple but clever idea – wish I’d thought of it a while ago..
Thanks,
Paul.
burning calories (3 comments)30 December 09
wow thanks a lot for the useful information. I will definitely bookmark your blog.
burning calories (3 comments)30 December 09
great and interesting post. thanks for this.
Teeth Whitening Cheryl (2 comments)3 January 10
Really nice post. I’d love to have more content on worpress MU about setting up and managing paid business listings for our teeth whitening products.
Teeth Whitening Cheryl (2 comments)3 January 10
Ooops. Sorry for the double post. Really nice post. I’d love to have more content on worpress MU about setting up and managing paid business listings for our teeth whitening products.
mobii (1 comments)20 January 10
it’s great andrea… I just using WP and think to try it too…
Mitko (12 comments)21 January 10
Ah finally something useful for people that own tons of micro blogs… I was setting up local servers until now and taking screenshots and stuff to work a theme in development and the whole process sucked