Oferta SiteGround Black Friday

Cómo quitar los menús de administración de WordPress

Aunque no te hayas parado a pensarlo son muchos los menús de administración de WordPress que seguramente sobren, que no utilices tú o tus usuarios y, seguramente, sería mejor que no estuviesen visibles.

Así que vamos a echar mano de un par de funciones de WordPress para deshacernos de ellos, menús y submenús, sino todos al menos los que no necesitemos o no queramos que estén a la vista.

Top secret

Quitando menús de WordPress

Así, si echamos un vistazo a los menús por defecto de WordPress, para quitarlos todos tendríamos que, usando la función remove_menu_page añadir este código a tu plugin de funciones:

/* Quitar menús principales de admin de WordPress */
function remove_menus(){
  
  remove_menu_page( 'index.php' );                  //Escritorio
  remove_menu_page( 'edit.php' );                   //Entradas
  remove_menu_page( 'upload.php' );                 //Multimedia
  remove_menu_page( 'edit.php?post_type=page' );    //Páginas
  remove_menu_page( 'edit-comments.php' );          //Comentarios
  remove_menu_page( 'themes.php' );                 //Apariencia
  remove_menu_page( 'plugins.php' );                //Plugins
  remove_menu_page( 'users.php' );                  //Usuarios
  remove_menu_page( 'tools.php' );                  //Herramientas
  remove_menu_page( 'options-general.php' );        //Ajustes
  
}
add_action( 'admin_menu', 'remove_menus' );

Si lo dejas tal cual pasarás de esto…

A esto otro…

Habrás ocultado todos los menús, lo que no significa que no puedas acceder a las páginas de administración, que aún existen.

Así que si tecleas, por ejemplo, la dirección de tu dominio más /wp-admin/users.php podrás seguir accediendo a la gestión de usuarios. Pero ojos que no ven, ajuste que no te tocan ¿no?, más si el resto de usuarios no saben las URLs.

Por supuesto, usa las líneas que quieras, no hay porqué ocultarlos todos.

A las cadenas anteriores puedes añadir, o sustituirlas, por aquellas que quieras para, por ejemplo, no mostrar el menú de JetPack, el de Yoast o el que quieras.

Un ejemplo sería este:

/* Quitar menús principales de admin de WordPress */
function remove_menus(){
  
  remove_menu_page( 'Wordfence' );                  //WordFence
  remove_menu_page( 'jetpatck.php' );               //JetPack
  remove_menu_page( 'wpseo_dashboard' );            //Yoast SEO
  remove_menu_page( 'w3tc_dashboard' );             //W3Total Cache
  
}
add_action( 'admin_menu', 'remove_menus' );

Y ¿cómo sabes qué hay que poner en la línea para los menús de tu plugin? Pues es de un sencillo que asusta, solo tienes que fijarte, accediendo a su página de administración,  en cuál es su URL.

De este modo, si al acceder a la página de ajustes de Yoast SEO la URL es esta…

Entonces lo que tienes que incluir a continuación de la función remove_menu_page es wpseo_dashboard, sin modificadores si los hubiera. Fácil ¿verdad?

Y si, por algún motivo, hay menús rebeldes, que se niegan a que los quites, puedes usar la acción con otra prioridad, sustituyendo la última línea del código de arriba por esta otra:

add_action( 'admin_menu', 'remove_menus', 999 );

Quitando submenús de WordPress

Más fino es no quitar menús, sino solo aquellos submenús que quieras quitar de miradas indiscretas. Para ello usaremos la función remove_submenu_page.

Y un ejemplo sería este:

/* Quitar submenús de admin de WP */
function remove_submenus() {
    remove_submenu_page( 'themes.php', 'theme-editor.php' ); //Editor de temas
    remove_submenu_page( 'themes.php', 'themes.php' ); //Selector de temas
    remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=post_tag' ); //Página admin de etiquetas
    remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=category' ); //Página admin de categorías
    remove_submenu_page( 'edit.php', 'post-new.php' ); //Añadir nueva
    remove_submenu_page( 'themes.php', 'nav-menus.php' ); //Apariencia -> Menús
    remove_submenu_page( 'themes.php', 'widgets.php' ); //Apariencia -> Widgets
    remove_submenu_page( 'plugins.php', 'plugin-editor.php' ); //Editor de plugins
    remove_submenu_page( 'plugins.php', 'plugin-install.php' ); //Instalar plugins
    remove_submenu_page( 'users.php', 'user-new.php' ); //Añadir usuario
    remove_submenu_page( 'upload.php', 'media-new.php' ); //Añadir medios
    remove_submenu_page( 'options-general.php', 'options-writing.php' ); //Ajustes de escritura
    remove_submenu_page( 'options-general.php', 'options-discussion.php' ); //Ajustes de comentarios
    remove_submenu_page( 'options-general.php', 'options-reading.php' ); //Ajustes de lectura
    remove_submenu_page( 'options-general.php', 'options-media.php' ); //Ajustes de medios
    remove_submenu_page( 'options-general.php', 'options-privacy.php' ); //Ajustes de privacidad
    remove_submenu_page( 'options-general.php', 'options-permalinks.php' ); //Ajustes de enlaces permanentes
    remove_submenu_page( 'index.php', 'update-core.php' ); //Actualizaciones
}
add_action( 'admin_menu', 'remove_submenus' );

E, igual que en el caso anterior, puedes incluir cualquier submenú de plugins o el tema, solamente fijándote en su URL.


Como te comentaba arriba este truco no es útil para usuarios avanzados que se sepan de memoria las URLs de administración, pero es genial para quitar de la vista menús peligrosos para tus clientes sin tener que desactivar realmente nada, y sin tener que usar plugins, pues lo haces todo con funciones estándar de WordPress.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 4.7 / 5. Total de votos: 14

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado. ¡Ah! ¿te funciona? pues entonces no he dicho nada :)

Sobre el autor

6 comentarios en “Cómo quitar los menús de administración de WordPress”

  1. Hola, Fernando

    Soy principiante de WordPress y estadounidense a quien le ha ocurrido empezar un sitio web para ayudar a los españoles con el ingles. Lo digo porque seguro que con el española me equivoco a veces.

    Noto que cuando abro otra ventana en mi portátil para ver como lucen los cambios que acabo de hacer, si aparece el menú de administracion de WP.

    Pero cuando hago los cambios en el portátil y busco mi página web en el movil, no sale ese menú.

    Entonces quiero saber si estos consejos se aplican a mi caso, o son para «developers» que desarrollan los sitios web para sus clientes.

    Gracias,
    Sofía

    P.S. Tu artículo fue el primero que salió en noticias Google. Enhorabuena!

    1. Hola Sofía,

      Es posible que sea cuestión de la cache del navegador, y en otro navegador o el móvil no le afecta. Deberías borrar la caché del navegador (depende del navegador, se suele llamar datos de navegación) y, en ocasiones, incluso del servidor o, si tienes plugin de cache, de tu instalación de WordPress.

      Un saludo 🙂

  2. Hola Fernando, tengo una duda ya que no logro ocultar el menú para el plugin «Elementor Page Builder» intente lo de la URL pero no me funciona alguna idea 🙁

    remove_menu_page( ‘edit.php?post_type=elementor_library’ );

  3. Hola Fernando!
    Es genial el truco! Es justo lo que necesitaba!
    Una pregunta adicional, ¿cómo puedo hacer esto mismo pero según el rol?
    Gracias!!!

  4. Hola, yo cree un custom type y quiero quitarle el boton de «add new»… entre otras funcionalidades, cómo lo haría y qué debería leer para adentrarme más en el tema?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información base sobre privacidad:
- Responsable: Fernando Tellado ([email protected])
- Fin del tratamiento: Moderación de comentarios para evitar spam
- Legitimación: Tu consentimiento
- Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
- Derechos: Acceso, rectificación, portabilidad, olvido

 

Scroll al inicio