Algo que tengo más que comprobado por las webs y tiendas que administro (incluyendo ésta en la que estás) es que el 90% de las veces que entro al menú de administración de WordPress es para ir a las mismas, que son normalmente submenús; diferentes en cada web, pero siempre las mismas pantallas en una misma web.
Lo peor es que normalmente cuesta varios clics: en Escritorio en la barra de administración, en el menú correspondiente, y muchas veces en alguna pestaña u opción adicional. ¿Y si pudiera tener un atajo siempre a mano, enlaces directos a las dos o tres opciones que más uso de cada web en la barra de administración? Pues vamos a ver cómo hacer precisamente esto: crear enlaces personalizados en la admin bar (o barra de administración) de WordPress.
Tabla de contenidos
¿Para qué crear enlaces personalizados en la barra de administración?
Seguro que a ti también te pasa: la mayor parte de las veces que vas a tu web vas a hacer las mismas tareas, en las mismas pantallas. Y es una lata, porque has de hacer una y otra vez el mismo recorrido por los menús y submenús de WordPress.
O quizá quieres dejarle a tu cliente enlaces a mano de los lugares que él tendrá que utilizar más frecuentemente (creación de entradas, de productos, revisión de pedidos) para que no ande dando vueltas por los submenús en busca de lo que necesita o (peor) tocando acá y allá sin saber bien lo que hace.
¿Y por qué precisamente en la barra de administración?
¡Porque está siempre ahí! Aterrices donde aterrices, si estás identificado (y si eres el administrador de la web estás siempre identificado) tienes ahí la admin bar, flotando en la parte superior de la pantalla.
Ya te habrás fijado que muchos plugins lo hacen con sus enlaces (Yoast SEO, Gravity Forms, WP Rocket, UpdraftPlus…), ¿así que por qué no hacerlo nosotros mismo con los que necesitamos?
Es el sitio perfecto: estés donde estés en tu sitio web, llegues por donde llegues (frontend o backend), el enlace siempre estará ahí, dispuesto a llevarte a la/s pantalla/s que más usas con un sólo clic. Ahorrar minutos es ahorrar días.
Crear enlaces personalizados en la barra de administración
Lo mejor de todo es que es muy cómodo… y flexible: puedes crear un sólo enlace, o varios de ellos (independientes o formando un menú desplegable). Puedes crear menús con submenús y complicarlo tanto como quieras…
Pero en fin, tampoco hay que complicarlo: se trata de tener a mano las dos o tres opciones que más usamos, por ejemplo:
- Si editas una misma página de forma regular para actualizar datos (Escritorio > Páginas > [búscala] > Editar).
- Si revisas los informes de ventas de WooCommerce por provincias/departamentos (Escritorio > WooCommerce > Informes > Pedidos > Ventas por provincia).
- Si exportas regularmente las facturas emitidas en la web (Escritorio > WooCommerce > Facturas PDF > Listados).
- Etcétera.
Así que vamos a ver cómo hacerlo.
¿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.
Un sólo enlace en la admin bar de WordPress
Esta es la opción más sencilla y fácil de hacer, basta con unas pocas líneas de código, muy sencillo y que podrás adaptar sin problemas a tu necesidad. Sería así:
add_action ('admin_bar_menu', function ($admin_bar) { $admin_bar->add_menu( array( 'id' => 'un_id', 'title' => 'El texto que aparecerá en la barra', 'href' => 'El enlace completo, incluyendo https://', )); }, PHP_INT_MAX, 1);
Si no sabes dónde tienes que poner este código, echa un vistazo a estas entradas:
Por lo demás, no hay gran cosa que explicar del código en sí. Donde dice un_id lo sustituyes por cualquier ID que quieras darle. Recuerda: no espacios, no caracteres especiales… Puedes poner cualquier cosa que estés seguro que no se vaya a repetir, por ejemplo: enlace_a_donde_sea.
También puedes cambiar donde pone PHP_INT_MAX, que controla la posición que ocupará el enlace en la barra superior. Dejándolo como yo lo he puesto (PHP_INT_MAX es una constante que en PHP quiere decirle al servidor «el número entero más alto que seas capaz de generar») quedará en la posición más a la derecha, pero si quieres que ocupe otra posición puedes probar otros números, desde 1 en adelante. Juega con esto para ver diferentes resultados.
En cuanto al enlace, si es a una página externa obviamente has de ponerlo completo, pero si es a una parte de panel de administración puedes usar la función admin_url. Un ejemplo más concreto (enlazando a los pedidos de WooCommerce):
add_action ('admin_bar_menu', function ($admin_bar) { $admin_bar->add_menu( array( 'id' => 'pedidos', 'title' => 'Pedidos', 'href' => admin_url('edit.php?post_type=shop_order'), )); }, 1, 1);
Como he sustituido el PHP_INT_MAX por un 1, el enlace aparecerá en la posición más a la izquierda de la barra, incluso antes del logotipo de WordPress.
Por supuesto, el código se puede complicar un poco más para añadir algunas otras propiedades, como por ejemplo:
- Si el enlace ha de abrirse en la misma pestaña del navegador o en una nueva.
- Aplicar al enlace clases CSS personalizadas.
- Funciones de JavaScript que deben ejecutarse al hacer clic en él (onclick).
- Etcétera.
Si te interesa, aquí puedes ver la entrada de referencia del hook en WordPress Developer Resources.
Puede que quieras añadir varios enlaces, agrupándolos en un sólo menú desplegable (como el de ✚ Añadir que crea el propio WordPress) por comodidad y para que esté todo más ordenado.
Esto es muy útil también para desarrolladores web, que pueden añadir un menú Manuales, Tutoriales o similar en la barra de administración de las webs que desarrollen para sus clientes.
El código es algo más complicado que el anterior, pero aún así también muy sencillo. Basta con asignar un false al href de la entrada que hará de menú, y un parent (cuyo valor será el ID de la entrada que hace de menú) a los demás. Sería, siguiendo el ejemplo que acabo de dar, algo así:
add_action( 'admin_bar_menu', function ($admin_bar) { $admin_bar->add_menu( array( 'id' => 'tutoriales', 'title' => 'Tutoriales', 'href' => false )); $admin_bar->add_menu( array( 'id' => 'entradas', 'title' => 'Crear entradas', 'href' => 'Enlace al tutorial Crear entradas', 'parent' => 'tutoriales', 'meta' => array('target' => '_blank'), //Para que se abra en una nueva pestaña )); $admin_bar->add_menu( array( 'id' => 'biblioteca', 'title' => 'Biblioteca de medios', 'href' => 'Enlace al tutorial Biblioteca de medios', 'parent' => 'tutoriales', 'meta' => array('target' => '_blank'), )); }, PHP_INT_MAX, 1);
Como ves es muy sencillo y no te será difícil adaptarlo a tus necesidades concretas, personalizando cada elemento e incluso añadiendo diferentes niveles de submenús.
Angel dice
Gracias, lo probaré!
Luis Pariona dice
Excelente! estaba buscando como agregarles el target blank 🙂 gracias.