kiselev-webmaster
@kiselev-webmaster

Как создать на wp кастомную роль с просмотром post_type?

Приветствую!

Подскажите, как создать кастомную роль пользователя с правами подписчика + право редактировать/создавать кастомный post_type?

Не нашел ни одного рабочего примера, чтоб можно было разобрать.
  • Вопрос задан
  • 348 просмотров
Решения вопроса 1
V_A_B
@V_A_B
¯\_(ツ)_/¯
интересный вопрос.....Спасибо!
Пройдя по ссылке Анатолия и поковырявшись вот такой вариант у меня вышел)):
создаем новую роль
add_role('newvabuser',
		__('Новый пользователь','VAB'),
		array(
		'read'=>true,
		'edit_posts'=>false,
		'delete_posts'=>false,
		'publish_posts'=>false,
		'upload_files'=>true,
	 )
	);

насколько я понял данный код можно удалить после того как роль с массивом попадет в базу....
если что не так, используйте
remove_role('newvabuser');
далее создаем новый пост тип
add_action('init','create_custom_post_types');
function create_custom_post_types(){
	register_post_type('vabs',
		array(
			'labels'=>array(
					'name'=>__('Новый тип записи','VAB'),
					'singular_name'=>__('Новый тип записи','VAB'),
					'menu_name'=>__('Новый тип записи','VAB'),
					'add_new'=>__('Добавить новую','VAB'),
					'add_new_item'=>__('Добавить новую','VAB'),
					'edit_item'=>__('Редактировать','VAB'),
					'new_item'=>__('Новая','VAB'),
					'all_items'=>__('Все записи','VAB'),
					'view_item'=>__('Просмотр','VAB'),
					'search_items'=>__('Искать','VAB'),
					'not_found'=>__('Записи не найдены','VAB'),
					'not_found_in_trash'=>__('В корзине записи не найдены','VAB'),
					'parent_item_colon'=>''
			),
			'public'=>true,
			'has_archive'=>true,
			'rewrite'=>array('slug'=>'vab'),
			'capability_type'=>'vab',
			'capabilities'=>array(
				'publish_posts'=>'publish_vabs',
				'edit_posts'=>'edit_vabs',
				'edit_others_posts'=>'edit_others_vabs',
				'delete_posts'=>'delete_vabs',
				'delete_others_posts'=>'delete_others_vabs',
				'read_private_posts'=>'read_private_vabs',
				'edit_post'=>'edit_vabs',
				'delete_post'=>'delete_vabs',
				'read_post'=>'read_vabs',
				'assign_terms' =>'edit_taxo',
				'manage_terms'=>'manage_vab_terms',
				'edit_terms'=>'manage_vab_terms',
				'delete_terms'=>'delete_vab_terms',
				'assign_terms'=>'edit_vab-type'
			),
			'supports'=>array('title','editor','thumbnail')
		)
	);
}

важно обратить внимание на массив с параметрами capabilities. его мы дальше передадим нашей роли:
add_action('admin_init','add_vabs_caps');
function add_vabs_caps(){
	$admins=get_role('newvabuser');
	$admins->add_cap('edit_vabs');
	$admins->add_cap('publish_vabs');
	$admins->add_cap('read_vabs');
	$admins->add_cap('read_private_vabs');
	$admins->add_cap('delete_vabs');
	$admins->add_cap('edit_taxo');
	$admins->remove_cap('edit_others_vabs');
	$admins->remove_cap('delete_others_vabs');
	$admins->add_cap('manage_vab_terms');
	$admins->add_cap('delete_vab_terms');
	$admins->add_cap('edit_vab-type');
	$admins->add_cap('manage_categories');
	$admins->add_cap('edit_categories');
	$admins->add_cap('delete_categories');
	$admins->add_cap('assign_categoriess');
}

В итогах данную запись смогут редактировать только админ и пользователь с данной ролью больше никто:
5d5c421fb2511245944305.jpeg
5d5c422ca4152143576315.jpeg
Вам нужно все это только под себя переделать
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Роль и права создаются разово.
Может есть смысл использовать плагин.
Например User Role Editor.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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