如何为Wordpress自定义帖子类型设置简单用户角色

如何为Wordpress自定义帖子类型设置简单用户角色,wordpress,Wordpress,我正在使用Wordpress为临时工/兼职工开发一个系统。为此,我将创建一个新的自定义职位类型员工,我需要2个相应的用户代理和客户: 代理用户可以创建和编辑自己的员工,但不能编辑其他代理的员工 所有代理商、客户和公众均可查看和评论员工帖子 这也意味着客户用户只能查看所有员工的帖子 客户用户需要与普通公众区分开来,因为一旦他们雇佣了员工,系统就需要将他们与员工关联起来,因此客户需要成为登录用户 最后,代理和客户用户都可以创建/编辑自己的香草Wordpress用户配置文件,并使用用户名/密码组合登

我正在使用Wordpress为临时工/兼职工开发一个系统。为此,我将创建一个新的自定义职位类型员工,我需要2个相应的用户代理和客户:

  • 代理用户可以创建和编辑自己的员工,但不能编辑其他代理的员工
  • 所有代理商、客户和公众均可查看和评论员工帖子
  • 这也意味着客户用户只能查看所有员工的帖子
  • 客户用户需要与普通公众区分开来,因为一旦他们雇佣了员工,系统就需要将他们与员工关联起来,因此客户需要成为登录用户
  • 最后,代理和客户用户都可以创建/编辑自己的香草Wordpress用户配置文件,并使用用户名/密码组合登录
我如何执行这项安排?关于用户和功能的在线文档让我毛骨悚然,围着圈子跑来跑去。到目前为止,这是我的自定义帖子类型注册,我目前正在为该帖子类型的其他信息设置元框:

register_post_type( 'employee',
    array(
        'labels' => array(
            'name' => __('Employees','tdom'),
            'singular_name' => __('Employee','tdom'),
            'add_new' => __( 'Add New' ),
            'add_new_item' => __( 'Add New Employee' ),
            'edit' => __( 'Edit' ),
            'edit_item' => __( 'Edit Employee' ),
            'new_item' => __( 'New Employee' ),
            'view' => __( 'View Employee' ),
            'view_item' => __( 'View Employee' ),
            'search_items' => __( 'Search Employees' ),
            'not_found' => __( 'No Employees found' ),
            'not_found_in_trash' => __( 'No Employees found in Trash' ),
            'parent' => __( 'Parent Employee' )
        ),
        'public' => true,
        'show_ui' => true,
        'query_var' => true,
        'menu_icon' => get_stylesheet_directory_uri() . '/images/emp_icon.png',
        'menu_position' => 4,
        'capability_type' => 'post',
        'hierarchical' => false,
        'rewrite' => true,
        'supports' => array('title', 'thumbnail', 'author')
    )
);
我遇到过JustinTadlock的插件(在谷歌和论坛上非常流行),但我希望我的要求足够简单,不再使用插件。这对我来说也有点太多了


救命啊。提前谢谢。

这真的不太难

第一步是通过传递给的
'capability\u type'
参数创建一个自定义功能类型,以对应于您的自定义帖子类型。您正在使用默认值,即:

'capability_type' => 'post',
将其设置为其他值,可能是
'employee'
,并且根据法典,也将
'map\u meta\u cap'
设置为
true

'capability_type' => 'employee',
'map_meta_cap'    => true,

下一步是通过传递给调用的
$capabilities
参数向自定义用户添加相关功能。对于“employee”用户角色,您需要添加
edit\u employee
等(编辑、删除等),对于“agent”用户角色,您需要包括
edit\u employee
等,以及
edit\u others\u employee
等,对mods来说这是一个很复杂的问题:这个问题更适合WPSE。谢谢@Chip!我会努力的,一旦我开始工作,或者遇到路障,我会给你一个提示。再次感谢Hi@Chip,我正在重新编写这部分代码。还有一个问题,对不起,如果nobbish:D那么我应该把我的
add_role()
call放在哪里?在我的
functions.php
中创建帖子类型之后?tiaI建议将其放入包含您的
register\u post\u type()
函数调用的同一个回调中。@AnaBan您可以从您的兼职系统中共享更多信息/代码吗?我正在开发一个受限制的参展商网站,管理团队在其中创建所有参展商帐户,每个经验证的参展商都可以预订产品和服务。当做