CMS WordPress

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

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.

EduZRO

<p>Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.</p>

1 Comment

  1. EsmeSM dice:

    También hay plugins que lo hacen, pero como siempre, a mayor cantidad de plugins, peor rendimiento.

Deja un comentario

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