function es_event_types_taxonomy() {
$labels = array(
'name' => 'Тип',
'singular_name' => 'Тип мероприятия',
'menu_name' => 'Тип мероприятия',
'all_items' => 'Все типы мероприятий',
'parent_item' => 'Главный тип мероприятия',
'parent_item_colon' => 'Parent Item:',
'new_item_name' => 'Название нового типа мероприятий',
'add_new_item' => 'Добавить тип мероприятия',
'edit_item' => 'Редактировать тип',
'update_item' => 'Обновить тип',
'view_item' => 'Смотреть тип',
'separate_items_with_commas' => 'Добавление через запятую',
'add_or_remove_items' => 'Добавить или удалить тип мероприятий',
'choose_from_most_used' => 'Выбрать из наиболее популярных',
'popular_items' => 'Популярные типы',
'search_items' => 'Найти тип',
'not_found' => 'Тип не найден',
'no_terms' => 'Типов мероприятий нет.',
'items_list' => 'Список типов меропрриятий',
'items_list_navigation' => 'Items list navigation',
);
$es_type_capabilities = array(
'manage_terms' => 'manage_es_event_type',
'edit_terms' => 'edit_es_event_type',
'delete_terms' => 'delete_es_event_type',
'assign_terms' => 'assign_es_event_type',
);
$args = array(
'labels' => $labels,
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_admin_column' => true,
'show_in_nav_menus' => true,
'show_tagcloud' => true,
'show_in_quick_edit' => true,
'meta_box_cb' => true,
'capabilities' => $es_type_capabilities,
'rewrite' => array( 'slug' => 'es_event_type', 'with_front' => false, 'hierarchical' => true),
);
register_taxonomy( 'es_event_type', array( 'es_event' ), $args );
}
add_action( 'init', 'es_event_types_taxonomy', 0 );
function add_se_roles() {
$es_admin_capabilities=array(
'activate_plugins' => false,
'delete_others_pages' => false,
'delete_others_posts' => false,
'delete_pages' => false,
'delete_posts' => false,
'delete_private_pages' => false,
'delete_private_posts' => false,
'delete_published_pages'=> false,
'delete_published_posts'=> false,
'edit_dashboard' => true,
'edit_others_pages' => false,
'edit_others_posts' => false,
'edit_pages' => false,
'edit_posts' => false,
'edit_private_pages' => false,
'edit_private_posts' => false,
'edit_published_pages' => false,
'edit_published_posts' => false,
'edit_theme_options' => false,
'export' => false,
'import' => false,
'list_users' => false,
'manage_categories' => false,
'manage_links' => false,
'manage_options' => false,
'moderate_comments' => false,
'promote_users' => false,
'publish_pages' => false,
'publish_posts' => false,
'read_private_pages' => false,
'read_private_posts' => false,
'read' => true,
'level_0' => true,
'remove_users' => false,
'switch_themes' => false,
'upload_files' => false,
'customize' => false,
'delete_site' => false,
'read_es_event' => true,
'edit_es_event' => true,
'edit_others_es_event' => true,
'publish_es_event' => true,
'read_private_es_event' => true,
'delete_es_event' => true,
'delete_private_es_event'=> true,
'delete_published_es_event'=>true,
'delete_others_es_event' => true,
'edit_private_es_event' => true,
'edit_published_es_event'=> true,
'manage_es_event_type' => true,
'edit_es_event_type' => true,
'delete_es_event_type' => true,
'assign_es_event_type' => true,
);
// $es_manager_capabilities=array();
// $es_user_capabilities=array();
// $es_subscriber_capabilities=array();
/* -=-=-=-=-=-=-=-=-=- */
add_role('es_admin', 'Администратор Системы Расписания', $es_admin_capabilities);
}
function add_se_roles() {
$es_admin = add_role('es_admin','Администратор Системы Мероприятий',array( 'read'=>true,'level_7'=>true));
if ( null !== $es_admin ) {
$es_administrator = get_role('es_admin'); // Для CPT
$es_administrator->add_cap('edit_es_event_content');
$es_administrator->add_cap('edit_es_event_contents');
$es_administrator->add_cap('read_es_event_content');
$es_administrator->add_cap('read_private_es_event_content');
$es_administrator->add_cap('delete_es_event_content');
$es_administrator->add_cap('delete_es_event_contents');
$es_administrator->add_cap('edit_published_es_event_contents');
$es_administrator->add_cap('delete_published_es_event_contents');
$es_administrator->add_cap('edit_other_es_event_content');
$es_administrator->add_cap('manage_es_event_type'); // <-Права таксономии вопроса
$es_administrator->add_cap('edit_es_event_type');
$es_administrator->add_cap('delete_es_event_type');
$es_administrator->add_cap('assign_es_event_type');
$es_administrator->add_cap('manage_es_event_operation');
$es_administrator->add_cap('edit_es_event_operation');
$es_administrator->add_cap('delete_es_event_operation');
$es_administrator->add_cap('assign_es_event_operation');
$es_administrator->add_cap('manage_es_event_location');
$es_administrator->add_cap('edit_es_event_location');
$es_administrator->add_cap('delete_es_event_location');
$es_administrator->add_cap('assign_es_event_location');
$es_administrator->add_cap('manage_es_event_team');
$es_administrator->add_cap('edit_es_event_team');
$es_administrator->add_cap('delete_es_event_team');
$es_administrator->add_cap('assign_es_event_team');
$es_administrator->add_cap('manage_event_service');
}
}
// Легче создать относительно пустую, со стандартными возможностями роль и по итогам создания напичкать ее всем, чем нужно.
// Все, что нужно прописывается в функциях создания таксономий и произвольного типа записи.