August 12, 2017

¿Cómo reorganizar los menús del panel de WordPress?

El panel de WordPress tiene que ser tu mejor amigo en lo que la gestión y control del contenido de tu web y configuraciones se refiere… pero tal vez no te guste cómo viene ordenado por defecto. ;-(

O lo que es peor… cuantos más plugins instalas, más y más menús aparecen caprichosamente como por arte de magia por donde les da la gana… bueno en realidad, del modo que el desarrollador de cada plugin lo haya decidido y de las interacciones de unos con otros.

En definitiva, mejorará tu productividad, o al menos tu estado de calma, si puedes ordenar las cosas a tu gusto del mejor modo que consideres al reorganizar los menús del panel de WordPress.

El problema a priori es que WordPress por defecto no permite ningún tipo de configuración ni personalización al respecto… pero como podrás imaginar, siempre hay formas de poder hacerlo con plugins o código.

Una forma muy rápida y sencilla es instalar algún plugin, como por ejemplo Admin Menu Manager que con sólo instalarlo te permite arrastrar los elementos del menú a la posición que tu elijas. 😉

Si esto te sabe a poco, hay otro plugin muy potente llamado Admin Menu Editor, con el que puedes hacer prácticamente lo que imagines ( especialmente con la versión PRO que permite configuraciones por roles de usuarios), en lo que a gestionar y reorganizar menús se refiere.

Además podrás esconder menús, arrastrar elementos de uno a otro, colocar separadores e incluso crear tus propios menús, elementos y subelementos.

Pero… si lo que buscas es poder reorganizar los menús del panel de WordPress del modo más rápido y eficaz sin depender de plugins, lo mejor es usar un poco de código.

Puedes re-ordenarlos fácilmente con el siguiente código que te dejo aquí. Sólo tienes que re-ordenar en el orden que prefieras las líneas de código del array que se retorna.

//Activar filtro menús
add_filter( 'custom_menu_order', '__return_true' );
add_filter( 'menu_order', 'pc_nuevo_orden_menus_administracion' );
/**
 * Modificar orden por defecto de los menús
 */
function pc_nuevo_orden_menus_administracion($menu_ord) {

        if (!$menu_ord) return true;

        return array(
         'index.php', // Escritorio
         'separator1', // Primer separador
         'edit.php', // Entradas
         'edit.php?post_type=page', // Páginas
         'separator2', // Segundo separador
         'upload.php', // Media
         'edit-comments.php', // Commentarios
         'themes.php', // Apariencia
         'admin.php?page=wpseo_dashboard', // Yoast SEO
         'plugins.php', // Plugins
         'users.php', // Usuarios
         'options-general.php', // Ajustes
         'tools.php', // Herramientas
         'separator-last', // Último separador
         );
}

Y si te animas con el código, también puedes ocultar todos los menús y sub-menús que quieras, con sólo fijarte en la URL de la página correspondiente a cada apartado del menú a ocultar. Te indico en el siguiente código con varias líneas de ejemplo un montón de apartados a ocultar; sólo deja lo que te interese. 😉

add_action( 'admin_menu', 'ocultar_menus_administracion' );
/**
 * Ocultar menús panel administración WordPress
 */
function ocultar_menus_administracion(){
  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
  //Ejemplos menús algunos plugins(ver URLs)
  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', 'ocultar_submenus_administracion' );
/**
 * Ocultar submenús panel administración WordPress
 */
function ocultar_submenus_administracion() {
  //Dejar sólo las líneas necesarias
  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
}

Para terminar te dejo un enlace por si también quieres saber: ¿Cómo personalizar el escritorio de WordPress?.

Si te ha gustado... ¡Compártelo!