J'ai un type de publication personnalisé que j'aimerais restreindre l'accès à certains rôles, cependant, j'ai déjà ajouté du contenu en utilisant le type de publication personnalisé et maintenant je dois les restreindre. Le type de capacité était «post»
'capability_type' => 'post'
Ce qui est bien car le contenu apparaît dans le backend cependant, dès que j'ajoute des fonctionnalités, le contenu disparaît du backend?
J'ai essayé de personnaliser le type de capacité pour inclure plusieurs définitions afin de construire la mienne, mais dès que je supprime ou modifie les types de capacité, c'est parti!
code complet:
add_action( 'init', 'register_cpt_gallery' );
function register_cpt_gallery() {
$labels = array(
'name' => _x( 'Galleries', 'gallery' ),
'singular_name' => _x( 'Gallery', 'gallery' ),
'add_new' => _x( 'Add New', 'gallery' ),
'add_new_item' => _x( 'Add New Gallery', 'gallery' ),
'edit_item' => _x( 'Edit Gallery', 'gallery' ),
'new_item' => _x( 'New Gallery', 'gallery' ),
'view_item' => _x( 'View Gallery', 'gallery' ),
'search_items' => _x( 'Search Galleries', 'gallery' ),
'not_found' => _x( 'No galleries found', 'gallery' ),
'not_found_in_trash' => _x( 'No galleries found in Trash', 'gallery' ),
'parent_item_colon' => _x( 'Parent Gallery:', 'gallery' ),
'menu_name' => _x( 'Galleries', 'gallery' ),
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
'description' => 'Image galleries for teachers classes',
'supports' => array( 'title', 'editor', 'author'),
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_icon' => get_bloginfo('template_url') . '/images/imagegallery.png',
'show_in_nav_menus' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'has_archive' => true,
'query_var' => true,
'can_export' => true,
'rewrite' => true,
'capability_type' => 'post',
'capabilities' => array(
'edit_post' => 'edit_gallery',
'edit_posts' => 'edit_galleries',
'edit_others_posts' => 'edit_other_galleries',
'publish_posts' => 'publish_galleries',
'read_post' => 'read_gallery',
'read_private_posts' => 'read_private_galleries',
'delete_post' => 'delete_gallery'
)
);
register_post_type( 'gallery', $args );
}
J'ai également testé cela avec un tout nouveau type de message personnalisé et quel que soit le type de capacité, j'obtiens le même problème, par exemple, même si je le supprime et que j'en ajoute un personnalisé:
'capability_type' => array('movie','movies');
add_theme_caps()
ne doit être appelé qu'une seule fois, pas à chaque fois qu'une page d'administration est chargée. Il serait préférable de l'utiliserswitch_theme
comme hook pour l'activation du thème ou pour l'activationregister_activation_hook
du plugin.