custom-post-types – ¿Es posible ocultar la interfaz de usuario / menú de tipo de publicación personalizada de roles de usuario específicos?

Pregunta:

Lo que estoy buscando hacer es ocultar completamente la interfaz de usuario para un tipo de publicación personalizada de roles de usuario específicos … Anteriormente encontré muchos recursos sobre cómo deshabilitar el acceso para usar esos CPT, pero nada que realmente le permita ocultar completamente la interfaz de usuario de CPT todos juntos en función del usuario que haya iniciado sesión en el panel.

Esto es importante ya que necesito que los clientes se mantengan completamente alejados de los tipos de publicaciones personalizadas para la tienda, y si aún pueden ver la interfaz de usuario de CPT de la tienda en el tablero, no hace ninguna diferencia si sus capacidades están restringidas, ya que todavía van a preguntar. cómo pueden agregar productos por sí mismos como resultado.

Realmente prefiero no lograr esto con un complemento, sin embargo, si hay algo que pueda hacer el truco de una manera no hinchada, supongo que aún sería genial.

Gracias por tu ayuda, SB

Respuesta:

Para ocultar un elemento de menú de tipo de publicación a los usuarios que no son administradores:

function wpse28782_remove_menu_items() {
    if( !current_user_can( 'administrator' ) ):
        remove_menu_page( 'edit.php?post_type=your_post_type' );
    endif;
}
add_action( 'admin_menu', 'wpse28782_remove_menu_items' );

your_post_type debe ser el nombre de su tipo de publicación real.

EDITAR-

otras páginas de menú que puede eliminar:

remove_menu_page('edit.php'); // Posts
remove_menu_page('upload.php'); // Media
remove_menu_page('link-manager.php'); // Links
remove_menu_page('edit-comments.php'); // Comments
remove_menu_page('edit.php?post_type=page'); // Pages
remove_menu_page('plugins.php'); // Plugins
remove_menu_page('themes.php'); // Appearance
remove_menu_page('users.php'); // Users
remove_menu_page('tools.php'); // Tools
remove_menu_page('options-general.php'); // Settings

EDITAR 2 –

Eliminando elementos del menú del complemento.

Para los complementos, parece que solo necesita page= query var. La otra cosa a tener en cuenta es la prioridad, que es el tercer argumento del admin_menu add_action . Debe establecerse lo suficientemente bajo (cuanto mayor sea el número, menor será la prioridad) para que los complementos ya se hayan agregado al menú.

function wpse28782_remove_plugin_admin_menu() {
    if( !current_user_can( 'administrator' ) ):
        remove_menu_page('cart66_admin');
    endif;
}
add_action( 'admin_menu', 'wpse28782_remove_plugin_admin_menu', 9999 );

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım