Pregunta:
Esto puede resultar obvio para alguien que no sea yo. Creo recordar haber leído en alguna parte que una "imagen" es de hecho una forma de "publicación".
- Tengo un tipo de publicación personalizada llamada "listado"
- Tengo un rol de WP personalizado de "cliente"
Cuando estoy conectado como el "cliente", y abro la ventana emergente de medios, busco una imagen, hago clic en "mostrar" para abrirla, y luego hago clic en "editar imagen", obtengo un -1. Es decir. no se muestra nada más que "-1".
Puedo solucionar este problema asignando a mi rol personalizado la capacidad de "edit_posts". ¿Por qué es esto? Tan pronto como hago esto, tengo otro problema, el rol de usuario "cliente" ahora tiene acceso a publicaciones, comentarios y herramientas, que no quiero.
¿Quizás no he configurado correctamente mi tipo de publicación personalizada con las capacidades? ¿Cómo puedo permitir que el "cliente" edite las imágenes pero no tenga acceso a las publicaciones?
$args = array(
'label' => 'Listing',
'description' => '',
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'map_meta_cap' => true,
'capability_type' => 'listing',
'capabilities' => array(
'edit_post' => 'edit_listing',
'read_post' => 'read_listing',
'delete_post' => 'delete_listing',
'edit_posts' => 'edit_listings',
'edit_others_posts' => 'edit_others_listings',
'publish_posts' => 'publish_listings',
'read_private_posts' => 'read_private_listings',
'delete_posts' => 'delete_listings',
'delete_private_posts' => 'delete_private_listings',
'delete_published_posts' => 'delete_published_listings',
'delete_others_posts' => 'delete_others_listings',
'edit_private_posts' => 'edit_private_listings',
'edit_published_posts' => 'edit_published_listings',
),
'menu_position' => 5,
'hierarchical' => false,
'has_archive' => false,
'rewrite' => array('slug' => 'listing'),
'query_var' => true,
'supports' => array('title'),
'labels' => $labels
);
Respuesta:
Si tuviera que adivinar: porque las imágenes son archivos adjuntos y los archivos adjuntos son un tipo de publicación . Por lo tanto, para editar una imagen, que es un archivo adjunto, que es una publicación, se requiere la capacidad edit_post
.
EDITAR
¿No tiene sus claves / valores de matriz de mapeo de capability
invertidos?
por ejemplo, tiene 'edit_posts' => 'edit_listings'
. ¿No debería ser en su lugar 'edit_listings' => 'edit_posts'
?