X

Restringir elementos del menú de administración por nombre de usuario

Snippets de IsItWP

¿Estás buscando una forma de restringir el acceso a elementos del menú basándote en el nombre de usuario? Si bien probablemente exista un plugin para esto, hemos creado un fragmento de código rápido que puedes usar para restringir elementos del menú de administración por nombre de usuario en WordPress.

Instrucciones:

Todo lo que tienes que hacer es agregar este código al archivo functions.php de tu tema o a un plugin específico del sitio:

function remove_menus()
{
    global $menu;
    global $current_user;
    get_currentuserinfo();

    if($current_user->user_login == 'username')
    {
        $restricted = array(__('Posts'),
                            __('Media'),
                            __('Links'),
                            __('Pages'),
                            __('Comments'),
                            __('Appearance'),
                            __('Plugins'),
                            __('Users'),
                            __('Tools'),
                            __('Settings')
        );
        end ($menu);
        while (prev($menu)){
            $value = explode(' ',$menu[key($menu)][0]);
            if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
        }// end while

    }// end if
}
add_action('admin_menu', 'remove_menus');

Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo agregar fragmentos de código correctamente en WordPress, para que no rompas accidentalmente tu sitio.

Si te gustó este fragmento de código, considera echar un vistazo a nuestros otros artículos en el sitio como: los 27 mejores temas de negocios de WordPress para tu sitio web y cómo crear un formulario de donaciones de WordPress.

Comentarios   Deja una respuesta

  1. Hola, ¿tienes un método para ocultar el menú de un plugin específico y permitir otros? Necesito restringir a un usuario (DB_manager) para que solo pueda administrar el plugin Form Database y nada más en el panel de administración.

  2. Gracias, pero no parece funcionar para tipos de publicación personalizados. ¿Alguna sugerencia?

  3. Ya he visto esto antes. Bastante útil, excepto que no parece funcionar con menús que incluyen espacios como:
    __(‘Some Menu’)
    He probado algunos caracteres especiales diferentes como guiones bajos, espacios de no separación, etc., pero no parece funcionar. También ajusté la prioridad, pero parece que esta función no reconoce espacios en el array. ¿Alguna idea?

    1. Hola Bryan,

      Es posible que desees usar este método
      http://codex.wordpress.org/Function_Reference/remove_menu_page
      Luego podrías usar “remove_menu_page” y “remove_submenu_page”

      luego podrías perder el while, algo como: http://pastebin.com/8ShwZ5rg
      No he probado esto, pero debería funcionar.

  4. Este fragmento solo oculta elementos del menú de la pantalla, pero no restringe el acceso por URL.

  5. ¿Alguna forma de eliminar una característica de administración de un plugin, específicamente eShop, del Panel de Administración?

    1. Este método puede funcionar mejor para ti,
      http://codex.wordpress.org/Function_Reference/remove_menu_page

Agrega un comentario

Nos complace que hayas elegido dejar un comentario. Ten en cuenta que todos los comentarios se moderan de acuerdo con nuestra política de privacidad, y todos los enlaces son nofollow. NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.

Lista de verificación para lanzar WordPress

La lista de verificación definitiva para lanzar WordPress

Hemos recopilado todos los elementos esenciales de la lista de verificación para el lanzamiento de tu próximo sitio web de WordPress en un práctico ebook.
¡Sí, envíame el eBook gratis!