WordPress – Advice on Creating Multiple Small Sites Within the Main Site

Filed under: Wordpress Tips

Question

I have been asked by my local school student union, to help with the creation of a website. (grand).

They want the students of their clubs, to be able to create a webpage/s in the site for their clubs ie: basketball club, football club, diabetic club and so on.

the url can be either, clubname.studentUnionName.com
or studentUnionName.com/clubname.

The student union will be the main admin of the site.
The student club president/s will be the admin of its own webpage and they can create pages make post add pictures etc etc…

Answer

The answer to your solution is that you have a choice.

You can setup individual installs of WordPress for each group OR you can install one main copy of WordPress and enable Multisite Features.

With Multisite you can serve the sites at /subgroup or subdomain.mainsite. but if you want to use subdomains you will need to setup wildcard DNS which will require you to get in touch with your dns server admin or if you are hosting on a paid host you can do this in cPanel pretty easy.

Now that you know your options

YOU MUST READ AND FULLY UNDERSTAND THIS PAGE BEFORE YOU CONTINUE

http://codex.wordpress.org/Roles_and_Capabilities

especially in a School setting you do not want to give rights to users that you do not trust

If you read that page you will see administrators can basically do anything

BUT ALSO Editors can edit other people’s posts and pages.. that means someone could find a password on one of your trusted users computers and log in with it and wipe out the site. so you must understand the levels of authority and you should consider the idea that people can post Drafts for Review and not Live Pages unless they are approved first and Published by an administrator.

There are plugins that can let you edit the user levels I suggest you read about them.

Members of one subAccount should not be members of the Main account or other subAccounts.

You only need one person to be the Superadmin of the main install.

The main super admin should lock the install of plugins and limit theme editing by subAccounts.

That means you figure out what themes and plugins should be available and you let the subAccounts use these items but not install new ones on their own.. if they have a request they email you and you do it.

Like I said before you go on from here you must understand User Rolls and Capabilities completely and how to setup subaccounts so people are registered as contributors by default not Editors or Admins.

 

on the Main site you will probably want to take advantage of a code snippet .. switch_to_blog()

This will allow the main site to display things like the last five posts of each subAccount. Its not really simple for newbees but its a feature you will want once you get started.

http://codex.wordpress.org/Function_Reference/switch_to_blog

 

You should also understand that if you run a MultiSite website the database will be shared.

This can mean corruption of all your sites if one is attacked..

For that reason single installs of wp for each club might be a good idea if you forsee this problem and you have a limited number of subAccounts needed because all of them will need to be updated and managed individually which can take a lot of time.

 

This is just a beginning of a few things you must consider.. userlevels are most important so start there no matter if you are installing a single copy or a copy for each club.

The Following plugins should be reviewed and used to manage userlevels / rolls and you should design a new roll that will allow users to post while not allowing them to modify other parts of the site.

Members Plugin

Role Scoper Plugin

User Access Manager

Advanced Access Manager

User Role Editor

 

Understanding Security is the most important part for a multiuser website as you read and learn about it you will be introduced to other things that make your website run smooth and reduce your need to administer it live 24/7.

Also important.. install or setup automated backups of your files and database that you can restore if something goes wrong.