Siempre hay ciertas operaciones que realizamos con frecuencia en nuestra web y para las cuales tenemos que dar varios pasos a través de los menús (actualizar cierta página, revisar los informes de WooCommerce, exportar las facturas generadas…). Unos segundos de nuestro valioso tiempo que, aparte del tedio de tener que repetir la operación a diario, a final del año se han llevado un tiempo apreciable.
Sin embargo nos podemos ahorrar este peregrinaje a través de los menús añadiendo enlaces a las partes de nuestro panel de administración que más frecuentamos en la barra superior, esa barra negra que tenemos en la parte de arriba cuando estamos identificados en nuestra web. Así que vamos a ver cómo podemos añadir enlaces a la barra de administración de WordPress.
Tabla de contenidos
Enlaces en la barra de administración de WordPress
Si eres observador, ya te habrás dado cuenta de que, en efecto, se pueden añadir enlaces aparte de los que trae por defecto WordPress (Visitar sitio, Actualizaciones, Comentarios, + Añadir…). Y es que ciertos plugins como WooCommerce (Visitar tienda), Yoast SEO (Y), WP Rocket, WP Super Cache (Vaciar la caché), Gravity Forms (Formularios) o UpdraftPlus los añaden al instalarlos.
Entonces, ¿no habrá forma de poder añadir nosotros nuestros propios enlaces a las zonas que más utilizamos, de forma que podamos ir directamente a ellas en lugar de tener que navegar por los menús? Eso nos ahorraría tiempo y el aburrimiento de tener que buscar las mismas opciones de menú cada día.
Por ejemplo, si revisas a diario los informes por clientes de este mes de WooCommerce tendrás que ir a WooCommerce > Informes, esperar a que cargue, clic en la pestaña Clientes, esperar a que cargue, clic en Este mes, esperar a que cargue… Si tuvieras un enlace en la barra de administración apuntando a admin.php?page=wc-reports&tab=customers&range=month podrías ir directamente…
Si por el contrario eres implementador o desarrollador, puedes añadir a las webs de tus clientes enlaces personalizados a las funciones que más utilizarán, a tutoriales sobre el uso de WordPress que tengas publicados, etcétera.
Y bueno, como ya he dicho, se puede, y además podemos hacerlo tanto por código (si eres de los que no le gustan instalar plugins a cascoporro) como con un plugin (si eres de los que tienen aversión al código). Así que vamos a ver cómo hacerlo de las dos formas.
Crear enlaces en la barra de administración mediante un plugin
A pesar de que en el repositorio de WordPress hay literalmente decenas de plugins para ocultar la barra de administración, no he conseguido encontrar ni uno sólo que permita añadir enlaces personalizados a la misma, a pesar de que programar algo así sería bastante sencillo.
Así que tendríamos que recurrir en este caso a Branda, un plugin que sirve para convertir un WordPress en una instalación de «marca blanca», por lo que te permite personalizar prácticamente cada aspecto del área de administración.
Bastaría con ir a Branda > Admin Area > Barra de administración y, tras activar el módulo, ir a la sección Elementos del menú para añadir cualquier nuevo elemento a la barra de administración, incluyendo un menú con submenús, e incluso podrás ocultar cualquier elemento existente.
Pero, la verdad, instalar un plugin como Branda para algo tan sencillo (es un plugin muy pesado ya que tiene muchísimas más funcionalidades y está pensado para algo mucho más elaborado) es como matar moscas a cañonazos. En un caso así es mucho más recomendable hacerlo por código, así que te invito a seguir leyendo y a poner en práctica lo que explico en la siguiente sección.
¿Estás construyendo tu tienda online o eres implementador WordPress?
¿Necesitas plugins de calidad y con soporte para implementar funcionalidades concretas?
Consigue todos los plugins a la venta en la sección de plugins de esta web y todos los que siga añadiendo. Acceso a los 96 plugins (y subiendo) con soporte directo del desarrollador, actualizaciones y uso ilimitado: úsalos en tantas webs como lo necesites.
Crear enlaces en la barra de administración por código
Como decía, en este caso el uso de código frente al plugin está doblemente justificado. Además, se trata de un código sencillo a la vez que flexible, ya que podrás adaptarlo fácilmente para, incluso, añadir menús con submenús.
De hecho, el código para añadir un enlace a la barra de administración de WordPress es tan sencillo como esto:
add_action ('admin_bar_menu', function ($barra_admin) { $barra_admin->add_menu( array( 'id' => 'mi-enlace', 'title' => 'Mi enlace', 'href' => 'admin.php?page=wc-reports&tab=customers&range=month', 'meta' => array( 'title' => 'Mi enlace', ), )); }, 100, 1);
Y con eso ya tendríamos implementado el enlace del ejemplo de más arriba (a los informes de WooCommerce por clientes del mes actual). Como puedes ver, en el parámetro href he usado una URL relativa al panel de administración, pero igualmente puedes usar URLs absolutas para enlaces que lleven a otro dominio.
También puedes jugar con la prioridad (el 100 que hay en la última línea) para mover la posición del enlace en la barra respecto al resto de enlaces. Un 10 debería situarlo el primero a la izquierda (antes incluso que el logo de WordPress que lleva al Acerca de) y un PHP_INT_MAX debería dejarlo el último a la derecha (a no ser que algún otro plugin ya esté usando ese valor).
Pero es que podemos hacer más: podemos incluso crear un menú completo con nuestros propios enlaces, con tantos elementos como queramos. Bastaría hacer algo así:
add_action ('admin_bar_menu', function ($barra_admin) { $barra_admin->add_menu( array( 'id' => 'mi-menu', 'title' => 'Mi menú', 'href' => 'URL', 'meta' => array( 'title' => 'Mi menú', ), )); $barra_admin->add_menu( array( 'id' => 'mi-subelemento1', 'title' => 'Mi subelemento 1', 'parent' => 'mi-menu', 'href' => 'URL', 'meta' => array( 'title' => 'Mi subelemento 1', ), )); $barra_admin->add_menu( array( 'id' => 'mi-subelemento2', 'title' => 'Mi subelemento 2', 'parent' => 'mi-menu', 'href' => 'URL', 'meta' => array( 'title' => 'Mi subelemento 2', ), )); }, 100, 1);
Como ves, la clave aquí está en establecer un atributo parent, que indicará cuál es el elemento de nivel superior del que «colgará» el subelemento, identificado mediante su ID. Y sí, puedes crear varios niveles de submenú estableciendo un subelemento como parent de otro, así:
add_action ('admin_bar_menu', function ($barra_admin) { $barra_admin->add_menu( array( 'id' => 'mi-menu', 'title' => 'Mi menú', 'href' => 'URL', 'meta' => array( 'title' => 'Mi menú', ), )); $barra_admin->add_menu( array( 'id' => 'mi-subelemento1', 'title' => 'Mi subelemento 1', 'parent' => 'mi-menu', 'href' => 'URL', 'meta' => array( 'title' => 'Mi subelemento 1', ), )); $barra_admin->add_menu( array( 'id' => 'mi-subelemento1_1', 'title' => 'Mi subelemento 1-1', 'parent' => 'mi-subelemento1', 'href' => 'URL', 'meta' => array( 'title' => 'Mi subelemento 1-1', ), )); }, 100, 1);
Como habrás imaginado tras lo que acabamos de ver, agregar nuevos subelementos al menú + Añadir de la barra de administración es muy sencillo: basta con establecer el ID de este menú como parent de nuestro elemento. ¿Y cuál es su ID? Pues new-content.
Así, bastaría con hacer:
add_action ('admin_bar_menu', function ($barra_admin) { $barra_admin->add_menu( array( 'id' => 'mi-subelemento', 'title' => 'Mi subelemento', 'parent' => 'new-content', 'href' => 'URL', 'meta' => array( 'title' => 'Mi subelemento', ), )); }, 100, 1);
Y con eso podríamos añadir un nuevo elemento a ese menú. De nuevo, la prioridad (el 100 en la última línea) controlará su posición dentro del desplegable.
4tube dice
La barra de administracion de WordPress es solo para usuarios registrados. No tendria sentido que cualquier visita viera una barra con accesos para editar paginas, anadir contenidos, moderar comentarios, etc. en una web que no es suya, no?
Enrique J. Ros dice
No, no lo tendría
Un saludo
Jose dice
Muy bueno amigo! lo que no me quedo claro es en que archivo tendria que agregar las lineas de codigo?
Enrique J. Ros dice
Hola Jose
Echa un vistazo a esto.
Un saludo
Macarena dice
Hola! ¿qué tal?
Sabes, estoy haciendo un menú con enlaces personalizados en WordPress, donde hay elementos y subelementos. Funciona súper bien, y es sencillo. Pero tengo un problema. En la versión móvil se despliegan los subelementos con unas flechas, y me gustaría que también se desplegara el mismo subelemento, al hacer click en el nombre del elemento que lo contiene. Es decir, que baje el menú al hacer click en la flecha, y también en el nombre del botón.
Macarena dice
Hola! ¿qué tal?
Sabes, estoy haciendo un menú con enlaces personalizados en WordPress, donde hay elementos y subelementos. Funciona súper bien, y es sencillo. Pero tengo un problema. En la versión móvil se despliegan los subelementos con unas flechas, y me gustaría que también se desplegara el mismo subelemento, al hacer click en el nombre del elemento que lo contiene. Es decir, que baje el menú al hacer click en la flecha, y también en el nombre del botón. ¿Cómo se logra eso? si agrego al enlace #, se sale del menú, y no muestra el subelemento. Si lo dejo sin URL, no pasa nada.
¡Ojalá me puedas ayudar! saludos y gracias por todos tus tutoriales y gran trabajo.
Enrique J. Ros dice
Hola Macarena
Contacta con el soporte de tu plantilla, son quienes pueden ayudarte con ese tema.
Un saludo