Tengo un tipo de publicación personalizado al que me gustaría restringir el acceso a ciertos roles, sin embargo, ya he agregado contenido usando el tipo de publicación personalizada y ahora tengo que restringirlos. El tipo_capacidad era 'post'
'capability_type' => 'post'
Sin embargo, ¿qué está bien cuando el contenido se muestra en el backend? Ahora, tan pronto como agrego alguna capacidad, el contenido desaparece del backend.
¡Intenté personalizar el tipo de capacidad para incluir definiciones en plural para construir la mía propia, pero tan pronto como elimino o cambio los tipos de capacidad, desapareció!
código completo:
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 );
}
También probé esto con un tipo de publicación personalizado completamente nuevo y, independientemente del tipo de capacidad, obtengo el mismo problema, por ejemplo, incluso si lo elimino y agrego mi personalizado:
'capability_type' => array('movie','movies');
add_theme_caps()
debe llamarse solo una vez, no cada vez que se carga una página de administrador. Sería mejor usarloswitch_theme
como gancho para la activación del tema oregister_activation_hook
en la activación del complemento.