0

I am creating a WP site that has a list of members, where each member (about 20) has their own page. Each member page is created by an admin, but now i am stuck.

I would like the content of each member page to be editable only by the admin and the member.

eg Admin creates a page for John. John can log in, and is displayed a link to his page (and his page only), where he can edit the content on that page. Tony cannot edit Johns page content.

How can i achieve this? Is this possible out of the box with wordpress? Do i need some plugins?

ps. All of my members have the role of Author, so when the admin creates the page, the Author of the page can be set to the member.

1

3 Answers 3

1

Read the WordPress Codex on the subject of Roles http://codex.wordpress.org/Roles_and_Capabilities

To confirm that the system works the way you want, as an admin create a test member with the author role and sample content as you would for a 'real' member. Then sign out and sign in using your test member's credentials and see what capability that test person has vs. what you want them to have.

The Author or Contributor role should do what you describe. Otherwise you can always generate a custom role cor your site which has the capabilities that you want and assign your members the custom role.

0

One way would be to create a new page each time a user is created. Store that page id in the user meta. If you're doing all the editing on the front end, then it's as easy as doing a conditional check to see if the page id stored matches the one in the user-meta data or if the user is an admin, otherwise deny access.

It'd be even easier if you're doing it via posts, because then you just create a post for the user with the user as an author. By default, WP allows all users to edit their own posts, as well as admins. As below, you can also store the users profile info/content right in the post meta-data.

A third option yet, would just be to create a template for the page that displays the users profile and editing options, and have it pull the users id. Then you can set it up so it stores all the profile info in the users meta-data. This of course would rule out admins, as by default it would show them their own page, unless you put in a form and field for the admins that they can pull up other users profiles by name/id whatever.

3
  • Yes, each time a new user is created, the admin creates a page for them, with no content. The author of that page is then set to the user, so i am looking for a way for the user to log in and edit the content on their page only. Your first and third suggestions are the more realistic, do you have any pointers (or are there any plugins) on how to achieve this?
    – John Crest
    Nov 5, 2014 at 11:19
  • I tried the User Role Editor plugin - it does not provide what i want. When the page is created, the admin sets the author of the page to the user. What i am looking for is the ability to check that if the author of the current page is the logged in user, then to allow the user to edit the page.
    – John Crest
    Nov 5, 2014 at 12:51
  • It depends on your PHP skills. As per my answer, creating a page template for the users profile page would be the easiest. Grab the current users ID, and then proceed from there. I dont know offhand of any plugins that would do this, but Im sure they exist. Nov 5, 2014 at 18:22
0

Okay John, I get what you are trying to do, unfortunately, you can't do that with the out of the box WordPress (wp) installation.

WP users are broken down into user levels like Admin, Editor, Author, etc. Each level has its own set of capabilities.

The problem with having all your members with the same user level is that they all possess the same capabilities. Basically, each member with the same user level can read/write anything the other member can.

Have you ever heard of networking your WP site? It's very easy. Just follow these instructions

Once you have a network. Create a site for each member. If you are using BuddyPress, than activate the plugin on the network level.

Now the default role of each member will be admin, however you are the super admin of the network. They can only read and edit their portion of your WP network. You can change their role to Author for their individual site and provide for them the theme or page to edit there.

Another great way to manage your users is with this plugin: User Role Editor

You can switch between users to test your results with this plugin: User Switching

Use this plugin (Admin Menu Editor) to hide admin menu options for each user, as well as, customize what you want them to see.

3
  • You charge about $34 an hour too much my friend. This sort of thing is indeed quite easily attainable. See my answer as to why I say this. Nov 5, 2014 at 7:39
  • Welcome to WPSE. Just a tip, please don't use this site for self promotion. It is regarded as spamming. I have removed your ad. Please refrain from this. Thank you Nov 5, 2014 at 8:04
  • My mistake. I will remember. Nov 6, 2014 at 19:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.