[wp-hackers] Custom Role and Custom Post Types

ErisDS (Hannah Wolfe) erisds at gmail.com
Sun Feb 13 16:08:29 UTC 2011


The post that Helen has suggested is awesome for understanding the really
powerful meta capabilities part of the capabilities system in WordPress.

For removing the "Add New" links, try this - it will work the same for
custom post types:
http://erisds.co.uk/wordpress/spotlight-wordpress-admin-menu-remove-add-new-pages-or-posts-link



On Sun, Feb 13, 2011 at 4:01 PM, Helen Hou-Sandi <helen.y.hou at gmail.com>wrote:

> This should help with defining custom roles and capabilities, along with
> his
> Members plugin:
>
> http://justintadlock.com/archives/2010/07/10/meta-capabilities-for-custom-post-types
>
> Definitely agreed on not fussing with the menu.
>
> --
> Helen Hou-Sandi
> http://www.helenhousandi.com
>
>
>
> On Sun, Feb 13, 2011 at 10:40 AM, Steve Taylor <steve at sltaylor.co.uk>
> wrote:
>
> > I don't know the mechanics of adding new capabilities - just grab the
> > Members plugin if you can't figure it out. But you need to specify the
> > capabilities for the new post type in register_post_type, then add
> > those capabilities to the new role - don't add "edit_posts".
> >
> > And yeah, removing menu items is an unsatisfactory hack - deal with
> > capabilities and the rest follows.
> >
> > Steve
> >
> > On 13 February 2011 14:21, SWORD Studios <info at swordstudios.net> wrote:
> > > I just ran this function to define the new role:
> > >
> > > //CUSTOM ROLE INFO
> > > add_role( 'sr_webdesigner', 'Web Designer' );
> > >
> > > // get the the role object
> > > //$role_object = get_role( 'sr_webdesigner' );
> > >
> > > // add $cap capability to this role object
> > > //$role_object->add_cap( 'edit_posts' );
> > >
> > > I've been looking into "unset" $submenu for Add New but I can't find
> the
> > > right submenu item and I'm not sure yet if that will prevent someone
> from
> > > manually navigating to /post-new.php
> > >
> > > On Sun, Feb 13, 2011 at 9:15 AM, Steve Taylor <steve at sltaylor.co.uk>
> > wrote:
> > >
> > >> Jesse,
> > >>
> > >> You probably need to pay attention to the capabilities-related
> > >> argument of register_post_type:
> > >>
> > >>
> >
> http://codex.wordpress.org/Function_Reference/register_post_type#Arguments
> > >>
> > >> I don't know how you're creating the new role - I used Justin
> > >> Tadlock's Members plugin, which also allows customization of the
> > >> role's capabilities. In tandem with the above arguments, I've been
> > >> able to do this kind of thing.
> > >>
> > >> As for creating the new post on registration, yeah, I think you're on
> > >> the right track with the new registration hook.
> > >>
> > >> cheers,
> > >>
> > >> Steve Taylor
> > >>
> > >> On 13 February 2011 13:42, SWORD Studios <info at swordstudios.net>
> wrote:
> > >> > Thanks in advance for any help I get with this.
> > >> >
> > >> > I've defined a new role in wordpress called Designer.
> > >> > I've create a custom post type called Profile.
> > >> >
> > >> > Designer needs to have 1 ability and that's to edit a Profile post.
> > >> >
> > >> > I need to accomplish the following
> > >> >
> > >> >   - Create a custom Role called "Designer" - DONE
> > >> >   - I need to limit the capabilities of the Designer to ONLY edit
> > their
> > >> >   Profile post.  I do not want them to be able to "Add Posts" of any
> > type
> > >> >   because each Designer is only allowed one Profile Post
> > >> >   - On registration of a "designer" a custom post "Profile" is
> created
> > >> and
> > >> >   published automatically with the new Designer set as the author
> > >> >   - The title of this new Profile will be the name of the Designer
> set
> > by
> > >> >   the designer upon registration
> > >> >
> > >> >
> > >> > Problems I'm having
> > >> >
> > >> >   - It's easy enough to limit the capabilities of the new role to
> only
> > >> >   "edit posts" but that actually gives them access to the entire
> > "Posts"
> > >> admin
> > >> >   panel which include "add new"
> > >> >   - How do I define that they can ONLY edit a Custom Post Type
> rather
> > >> than
> > >> >   a simple Post
> > >> >   - How do I auto create a custom post type upon registration of a
> new
> > >> >   user? I figure I can grab the hook that is used for a new user
> > >> registration
> > >> >   and just add the post to the database manually.  If this is the
> best
> > >> way of
> > >> >   doing it, I can don't need help with this.
> > >> >
> > >> > Jesse Friedman
> > >> > _______________________________________________
> > >> > wp-hackers mailing list
> > >> > wp-hackers at lists.automattic.com
> > >> > http://lists.automattic.com/mailman/listinfo/wp-hackers
> > >> >
> > >> _______________________________________________
> > >> wp-hackers mailing list
> > >> wp-hackers at lists.automattic.com
> > >> http://lists.automattic.com/mailman/listinfo/wp-hackers
> > >>
> > > _______________________________________________
> > > wp-hackers mailing list
> > > wp-hackers at lists.automattic.com
> > > http://lists.automattic.com/mailman/listinfo/wp-hackers
> > >
> > _______________________________________________
> > wp-hackers mailing list
> > wp-hackers at lists.automattic.com
> > http://lists.automattic.com/mailman/listinfo/wp-hackers
> >
> _______________________________________________
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-hackers
>


More information about the wp-hackers mailing list