Crear menús en la barra de administración de WordPress

PHPWordPress

En este artículo veremos cómo crear menús personalizados en la barra de administración de WordPress sin necesidad de instalar ningún Plugin. Para ello, como es ya habitual, deberemos editar el archivo functions.php de nuestro tema. Primero pondré el código y luego lo explicaré:

Creando elementos principales del menú

function add_item($admin_bar)
{
  $args = array(
    'id' => 'llink-admin-foros', // Debe ser un nombre único
    'title' => '<img width="25" height="25" src="http://www.neoguias.com/wp-content/themes/oblivion/img/account.png" style="vertical-align:middle; margin-right:5px;" alt="Visit Site" title="Visit Site" />Foros', // Etiqueta del elemento
    'href' =>__ ('/foros'),
    'meta' => array(
      'target'=> '_parent', // Si se abrirá o no en una nueva ventana
      'title' => __('Foros de neoguias'), // Texto que aparecerá al pasar el ratón por encima
     ),
   );
  $admin_bar->add_menu( $args);
}
add_action('admin_bar_menu', 'add_item', 35); //35 = Orden en el que quiero que aparezca

Comenzando por el final, en la última línea llamamos a la función que agrega el elemento del menú con add_action(‘admin_bar_menu’, ‘add_item’, 35); , en donde admin_bar_menu es la ubicación, add_item la función que nos devolverá el elemento del menú y 35 es el peso u orden en que queremos que aparezca el enlace. Dado que el icono de WordPress tiene el 10 y el nombre del blog el 20, he puesto 35 para que sea el tercero.

En la función, declaramos un array $args que contendrá el identificador del enlace (debe ser único), el título, el enlace y finalmente otro array con dos valores con metadatos del enlace, que serán el destino (_parent para la misma ventana en este caso) y el título que se mostrará al pasar el ratón por encima. Finalmente con $admin_bar->add_menu( $args); indicamos que el enlace sea añadido al menú referenciado por la variable $admin_bar, que en este caso hemos indicado que sería el menú de administración al llamar a la función.

Fácil y para toda la familia.

Creando subelementos del menú

Del mismo modo que creamos elementos principales, podemos crear subelementos añadiendo al array el identificador del enlace padre dentro del elemento ‘parent’ del array. He aquí un ejemplo con el que lo veréis muy claro. En el ejemplo creamos el elemento principal y tres subelementos. Podéis verlo funcionando en este mismo blog pero, eso sí, debéis estar registrados.

function add_item($admin_bar) {
  $args = array(
    'id' => 'link-admin-foros',
    'title' => '<img width="25" height="25" src="http://www.neoguias.com/wp-content/themes/oblivion/img/account.png" style="vertical-align:middle; margin-right:5px;" alt="Visit Site" title="Visit Site" />Foros', // Etiqueta del elemento
    'href' =>__ ('/foros'),
    'meta' => array(
      'target'=> '_parent',  
      'title' => __('Foros de neoguias'),
    )
  );
  $args2 = array(
    'parent' => 'link-admin-foros',
    'id' => 'link-admin-foros-general',
    'title' => 'Zona general',
    'href' =>__ ('/foros/foro/general/'),
    'meta' => array(
      'target'=> '_parent',
      'title' => __('Zona general del foro'),
     )
  );
  $args3 = array(
    'parent' => 'link-admin-foros',
    'id' => 'link-admin-foros-programacion',
    'title' => 'Programación',
    'href' =>__ ('/foros/foro/programacion/'),
    'meta' => array(
      'target'=> '_parent',
      'title' => __('Foro de programación'),
     )
  );
  $args4 = array(
    'parent' => 'link-admin-foros',
    'id' => 'link-admin-foros-cms',
    'title' => 'CMS',
    'href' =>__ ('/foros/foro/cms-gestores-de-contenido/'),
    'meta' => array(
      'target'=> '_parent',
      'title' => __('Foro de CMS'),
    )
  );
  $admin_bar->add_menu( $args);
  $admin_bar->add_menu( $args2);
  $admin_bar->add_menu( $args3);
  $admin_bar->add_menu( $args4);
}
add_action('admin_bar_menu', 'add_item', 35);

Espero que esta pequeña guía os haya sido útil.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”