Comment puis-je supprimer ce type de publication personnalisé de l'affichage dans le tableau de bord pour les utilisateurs non administrateurs?
/* Add Websites Custom Post Type */
add_action( 'init', 'create_website_type' );
function create_website_type() {
register_post_type( 'website',
array(
'labels' => array(
'name' => __( 'Websites' ),
'singular_name' => __( 'Website' ),
'add_new' => __( 'Add New Website' ),
'add_new_item' => __( 'Add New Website' ),
'edit' => __( 'Edit Website' ),
'edit_item' => __( 'Edit Website' ),
'new_item' => __( 'Add New Website' ),
'view' => __( 'View Website' ),
'view_item' => __( 'View Website' ),
'search_items' => __( 'Search Websites' ),
'not_found' => __( 'No Websites Found' ),
'not_found_in_trash' => __( 'No Websites found in Trash' ),
),
'description' => __('Websites to be shown in Resources section.'),
'public' => true,
'show_ui' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'menu_position' => 20,
'supports' => array('title', 'editor'),
'can_export' => true
)
);
remove_post_type_support('website','editor');
}
register_post_type()
accepte un paramètre capabilities
dans ses arguments. Voir get_post_type_capabilities()
pour les valeurs possibles. D'après les commentaires:
Par défaut, sept clés sont acceptées dans le tableau de capacités:
edit_post
,read_post
etdelete_post
sont des méta-capacités, qui sont ensuite généralement mappées aux capacités primitives correspondantes en fonction du contexte, qui correspond au message en cours de modification/lecture/suppression et à l'utilisateur ou au rôle en cours de vérification. Ainsi, ces fonctionnalités ne seraient généralement pas octroyées directement aux utilisateurs ou aux rôles.
edit_posts
- Contrôle si les objets de ce type d'article peuvent être édités.edit_others_posts
- Contrôle si les objets de ce type appartenant à d'autres utilisateurs peuvent être édités. Si le type de publication ne prend pas en charge un auteur, il se comportera comme suit:edit_posts
.publish_posts
- Contrôle les objets de publication de ce type d'article.read_private_posts
- Contrôle si les objets privés peuvent être lus.Ces quatre capacités primitives sont vérifiées dans le noyau à divers endroits. Il existe également sept autres capacités primitives qui ne sont pas référencées directement dans le noyau, à l'exception de
map_meta_cap()
, qui utilise les trois méta capacités susmentionnées et les traduit en une ou plusieurs capacités primitives qui doivent ensuite être vérifiées par rapport à l'utilisateur ou au rôle, en fonction du contexte. .
read
- Contrôle si les objets de ce type d'article peuvent être lus.delete_posts
- Contrôle si les objets de ce type de publication peuvent être supprimés.delete_private_posts
- Contrôle si les objets privés peuvent être supprimés.delete_published_posts
- Contrôle si les objets publiés peuvent être supprimés.delete_others_posts
- Contrôle si les objets appartenant à d'autres utilisateurs peuvent être supprimés. Si le type de publication ne prend pas en charge un auteur, il se comportera comme suit:delete_posts
.edit_private_posts
- Contrôle si les objets privés peuvent être édités.edit_published_posts
- Contrôle si les objets publiés peuvent être édités.Ces fonctionnalités supplémentaires ne sont utilisées que dans
map_meta_cap()
. Ainsi, ils ne sont affectés par défaut que si le type de publication est enregistré avec l'argument'map_meta_cap'
défini surtrue
(la valeur par défaut estfalse
).
Dans vos arguments d'enregistrement, ajoutez:
'capabilities' => array(
'edit_post' => 'update_core',
'read_post' => 'update_core',
'delete_post' => 'update_core',
'edit_posts' => 'update_core',
'edit_others_posts' => 'update_core',
'delete_posts' => 'update_core',
'publish_posts' => 'update_core',
'read_private_posts' => 'update_core'
),