We use wordpress like a CMS and would very much like to allow users to have a “homepage”. Ideally they’d be prevented from mucking up the whole site.
Is there a simple way to limit users editing rights to a single page?
I’m currently using the Members plugin to do other permission-based stuff, so it’d be great if a solution could either neatly augment this, or replace it entirely.
Bonus points for automatic creation of a homepage when a new user is created.
UPDATES: I should clarify that these pages need to be confined to a specific area of the site (i.e. all children of the same page). Also, after speaking to some users it seems that they’d find it useful to create sub-pages branching from their home page.
A base WordPress installation probably won’t do what you want it to. You could set up a multi-site instance and allow users to have their own ‘sub’ site, or use something like BuddyPress or Mingle that has a user profile feature.
Sorry to do this, but I stumbled across the answer in the wordpress forums.
It turns out that Role Scoper does this really well. The author of that forum post said it best:
I faced the same situation as you and what i did was create a custom post type named” homepage” and also created “Bainternet Posts Creation Limits” plugin to limit the creation of each post type per user.
Try it out http://wordpress.org/extend/plugins/bainternet-posts-creation-limits/
The User Access Manager Plugin will do this for you, all the other approaches are much too complicated. UAM is just easy, setup groups and assign the group to your sub-pages, ready.
I’d use the Capability Manager or check out roles and capabilities in codex in order to do this.
The sollution implys that you have disabled the editing of “normal” post types (post, page).
It’s not as hard as you might believe. The key is the user login name. The same could be done with taxonomies or even terms.
See the following (there’s an example for a query too):
With taxonomies this would even make more sense, because you could query only the posts that are tagged with terms from this users taxonomies, but that would need a post meta box with the users taxonomy terms. The condition would be the same: user login name and you’d just add the taxonomy:
The placement of capability check (current_user_can) could be somewhere other too. Depends all on your specific needs.
Just to make this sure: These are examples to guide you on your way to a sollution. Hope that helps 🙂
I’ve done something similar with “members”, a custom post type, and a manual assignment of author rights to a specific member, since it’s a small group website, but I do remember reading in some buddy press support thread that it is possible to hook into the signup process, so I suppose it would be possible to automatically create a page/custom post type per user on signup and assign that specific page to the newly created member as homepage. I also added Scribu’s front-end editor and blocked the backend to the members who aren’t admins. You can probably also add a redirect on signup so new members are redirected to their page (which, I suppose, could have some default content).
I’ll see if I can find that buddypress support thread.
Addendum – there is a bug in the author selector on the edit post field. It currently doesn’t use the standard permission system, which may make the members solution more difficult (although it will probably work if the author is assigned on page-creation). There is a patch in trac, but I don’t think it’s been applied to the core yet.
this is possible with the plugin s2member, the free version is sufficient. I created a client area where each client has an URL
there is a video tutorial here : http://www.primothemes.com/forums/viewtopic.php?f=4&t=586&start=0&hilit=client+area