No puedo obtenerlo para que mi rol de usuario para un proveedor pueda leer el tipo de envío de los envíos. Aparece en su menú, pero al hacer clic en él aparece el mensaje de error que no tiene permiso para ver esta página .
Funciona si add_cap('read_posts')
pero no quiero que vean las publicaciones regulares solo el tipo de publicación de los envíos.
Tengo un rol de usuario de proveedores con las siguientes capacidades.
WP_Role Object
(
[name] => supplier
[capabilities] => Array
(
[read] => 1
[edit_shipment] => 1
[read_shipment] => 1
[edit_others_shipments] => 1
[publish_shipments] => 1
[read_private_shipments] => 1
[edit_shipments] => 1
[create_shipment] => 1
[read_shipments] => 1
)
)
Y he configurado el tipo de publicación para envíos con lo siguiente
function shipment_post_type() {
$labels = array(
'name' => _x( 'Shipments', 'Post Type General Name', 'sage' ),
'singular_name' => _x( 'Shipment', 'Post Type Singular Name', 'sage' ),
'menu_name' => __( 'Shipments', 'sage' ),
'name_admin_bar' => __( 'Shipments', 'sage' ),
'archives' => __( 'Shipment Archives', 'sage' ),
'parent_item_colon' => __( 'Parent shipment:', 'sage' ),
'all_items' => __( 'All shipments', 'sage' ),
'add_new_item' => __( 'Add New shipment', 'sage' ),
'new_item' => __( 'New shipment', 'sage' ),
'edit_item' => __( 'Edit shipment', 'sage' ),
'update_item' => __( 'Update shipment', 'sage' ),
'view_item' => __( 'View shipment', 'sage' ),
'search_items' => __( 'Search shipments', 'sage' ),
'not_found' => __( 'Not found', 'sage' ),
'not_found_in_trash' => __( 'Not found in Trash', 'sage' ),
'featured_image' => __( 'Featured Image', 'sage' ),
'set_featured_image' => __( 'Set shipment image', 'sage' ),
'remove_featured_image' => __( 'Remove shipment image', 'sage' ),
'use_featured_image' => __( 'Use as shipment image', 'sage' ),
'insert_into_item' => __( 'Insert into shipment', 'sage' ),
'uploaded_to_this_item' => __( 'Uploaded to this shipment', 'sage' ),
'items_list' => __( 'shipments list', 'sage' ),
'items_list_navigation' => __( 'Constests list navigation', 'sage' ),
'filter_items_list' => __( 'Filter shipments list', 'sage' ),
);
$args = array(
'label' => __( 'shipments', 'sage' ),
'description' => __( 'Manage all shipments, sweepstakes and giveaways.', 'sage' ),
'labels' => $labels,
'supports' => array( 'revisions' ),
'taxonomies' => array( '' ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'menu_icon' => 'dashicons-archive',
'show_in_admin_bar' => true,
'show_in_nav_menus' => false,
'can_export' => true,
'has_archive' => false,
'exclude_from_search' => true,
'publicly_queryable' => true,
'map_meta_cap' => true,
'capabilities' => array(
'edit_post' => 'edit_shipment',
'read_post' => 'read_shipment',
'read_posts' => 'read_shipments',
'delete_post' => 'delete_shipment',
'delete_posts' => 'delete_shipments',
'edit_posts' => 'edit_shipments',
'edit_others_posts' => 'edit_others_shipments',
'publish_posts' => 'publish_shipments',
'read_private_posts' => 'read_private_shipments',
'create_posts' => 'create_shipments',
),
);
register_post_type( 'shipment', $args );
}
add_action( 'init', 'shipment_post_type', 0 );