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.
Índice de contenidos
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!
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?