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.

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.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!







AVISO: Esta publicación hace 3 años o más que no se actualiza. 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 sirvió?, pues entonces nada :-)
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!
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 🙂
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’ );
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!!!
Añadiendo condicionales: https://ayudawp.com/tags-condicionales-en-wordpress/
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?
Tegno una pregunta si no te importa:
quiero quitar el plugin WP forms y tiene esta url:
https://midominio.com/wp-admin/admin.php?page=wpforms-overview
y esta otra:
https://midominio.com/wp-admin/admin.php?page=homey_options&tab=1