WordPress MU (WPMU) is basically the multi-user version of WordPress, the popular blog/cms tool. The aim of WPMU is to allow for one installation to spawn multiple WordPress blog instances. Basically, you can install WPMU on your server and run as many individual WordPress instances as your box can handle.
WordPress MU has the basics of a social network right out of the box – individual member blogs, member profiles and the ability to scale well.
Don’t Hack – Just Plug
WordPress also has an excellent plugin API, as well as a whole host of quality pre-built plugins ready to download and activate. The key here is that I didn’t have to hack the core – I could just achieve the additional functionality needed by building dedicated plugins.
Plugins were built and used for private messaging, advanced profile management, online polls, photo management, multi-blog search and user credential management.
Not Blogs, But Member Home Pages
The crucial part to the whole project was morphing WordPress MU to stop it from generating new blog instances and instead generating new member home pages.
A member home page includes a users own personal profile front and center, their own personal “journal” as a feature of their home page, as well as private messaging functionality.
To achieve the desired change it was down to making a new WordPress theme. The theme would have exactly the same look and feel as the core site – making it look like the new member home page was still part of the core site itself.
Within the theme, I removed the code that usually makes the blog posts front and center, and changed it to the code that outputs the users profile. The blog code was moved to the sidebar so it could still be accessed as the members “journal” feature.
Finally, the code to output the users new private messages was added to the sidebar, as well as some code to output polls, photos and other smaller bits and bobs.
A nice feature of WordPress MU is it places member pages on a subdomain, so any members home page can be found at http://membername.chickspeak.com. A nice touch, as it’s then easy to remember the to link to your profile.
Adding Some BBPress Magic
The project also called for a fully featured discussion forum. The forum needed to work seamlessly with the site, using the same login credentials and the same look and feel. Another project called BBPress fit the bill perfectly. BBPress is a no-frills forum/bulletin board application built by the same guys (Automattic) as WordPress. It has the same style, plugin architecture and most importantly can share the credentials data and cookie information. Perfect.
The final step was to limit the administration functionality that a member has on their own blog. This stops them from signing up new users, deleting content they shouldn’t be, or changing the theme of their member page. I created a simple plugin that disabled the menus for these settings in the WordPress admin interface. The pages could only be accessed by site-wide administrators if needed.
I’ve only really glazed on what I did with WordPress MU to turn it into a fully fledged social network engine – but you get the overall idea. I’d be happy to answer anyones specific questions if you have them.
ChickSpeak is up and running over at ChickSpeak.com. Feel free to take a look when you get a chance, I’d welcome any feedback. You can also click the image thumbnails in the article to get full screenshots.