Вопрос по – Как настроить простые Роли Пользователя для Пользовательского Типа Записи Wordpress

7

Я работаю над системой для временных / подработок, использующих Wordpress. Для этого я создаю новый пользовательский тип записи EMPLOYEE, и мне для этого нужны 2 соответствующих пользователя AGENT и CUSTOMER:

The AGENT user can create and edit his own EMPLOYEE(s), but not edit the EMPLOYEE(s) of other AGENT(s). The EMPLOYEE post can be viewed and commented on by all AGENTs, CUSTOMERs and the general public, which also implies that the CUSTOMER user can only view all EMPLOYEE posts. The CUSTOMER user needs to be differentiated from the general public because once they hire an EMPLOYEE, the system needs to associate them with the EMPLOYEE, thus the need for the CUSTOMER to be a signed-in user. Finally, both AGENT and CUSTOMER users can create/edit their own vanilla Wordpress user profiles and sign-in with their username/password combination.

Как мне выполнить это соглашение? Онлайн-документация о пользователях и возможностях заставила меня потянуть за волосы и бегать кругами. Итак, здесь моя собственная регистрация типа записи, и я в настоящее время настраиваю мета-блоки для другой информации для этого типа записи:

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')
    )
);

Я сталкивался с Джастином Тэдлокомчлены плагин (очень популярен в Google и на форумах), но я надеялся, что мои требования достаточно просты, чтобы больше не использовать плагин. Это также слишком много, чтобы обернуть мою голову вокруг.

Помогите. Заранее спасибо.

Я бы посоветовал плагин, он достаточно сложный janw
Note to mods: этот вопрос лучше подойдет для WPSE. Chip Bennett

Ваш Ответ

1   ответ
4

Первым шагом является созданиеcustom capability type чтобы соответствовать вашему типу сообщения, через'capability_type' параметр переданregister_post_type(), Вы используете значение по умолчанию, т.е.

'capability_type' => 'post',

Установите это к чему-то еще, возможно'employee'и в соответствии с Кодексом, также установить'map_meta_cap' вtrue:

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

Следующим шагом является добавление соответствующих возможностей вашим пользовательским пользователям через$capabilities параметр передан вашему звонкуadd_role(), Для «сотрудника» роль пользователя, которую вы хотите добавитьedit_employee et al (edit_, delete_ и т. д.), а также для "агента" роль пользователя, которую вы хотите включитьedit_employee и др. вместе сedit_others_employee и другие.

Error: User Rate Limit Exceededadd_role()Error: User Rate Limit Exceededfunctions.phpError: User Rate Limit Exceeded Ana Ban
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Ana Ban
Error: User Rate Limit Exceededregister_post_type() вызов функции.

Похожие вопросы