Я создаю пользовательский тип записи - заказы. Он должен быть доступен только из админки. Доступ для него нужно настроить отдельно, потому даю метку capability_type "sale" для установления прав. Пока всё правильно: если установить метку "post", с ним можно нормально работать.
function create_posttype_order() {
register_post_type( 'ord',
array(
'labels' => array(
'name' => __( 'Заказы' ),
'singular_name' => __( 'Заказ' )
),
'public' => false,
'show_ui' => true,
'menu_position' => 7,
'has_archive' => false,
'capability_type' => array('sale', 'sales'),
'map_meta_cap' => true,
'rewrite' => false,
'show_in_menu' => true
)
);
}
add_action( 'init', 'create_posttype_order' );
Дальше я пытаюсь для администратора добавить возможность читать и удалять заказы.
function ord_change_roles(){
$admin = get_role( 'administrator' );
$admin->add_cap( 'delete_published_sales' );
$admin->add_cap( 'delete_sales' );
$admin->add_cap( 'delete_private_sales' );
$admin->add_cap( 'read_private_sales' );
$admin->add_cap( 'read_sales' );
}
add_action( 'admin_init', 'ord_change_roles');
Пункта "Заказы" в меню админки не появляется. То ли я вообще неправильно что-то делаю, то ли нужно задать какое-то ещё право, чтобы этот пункт отображался.