Cuando estamos trabajando con WordPress, uno de los puntos importantes a definir es el menú. Desde el backend se nos permite configurar un menú a nuestro criterio, con páginas que se incluyen automáticamente al crearlas, páginas seleccionadas a nuestro criterio o enlaces personalizados que podemos añadir a mano. Un abanico de posibilidades que cubre casi cualquier necesidad.
No obstante, si estamos haciendo el desarrollo de un tema WordPress desde cero, somos nosotros a la hora de programar la web los que debemos de indicar dónde se debe mostrar el menú que el usuario cree desde el backend. Para eso utilizaremos la función register_nav_menu
que nos permitirá registrar un nuevo menú. Esto lo haremos en el archivo functions.php de nuestro tema.
// Registramos un nuevo menú
add_action( 'after_setup_theme', 'registrar_menu_principal' );
function registrar_menu_principal() {
register_nav_menu( 'principal', __( 'Menú principal', 'dominio-traduccion' ) );
}
Aunque en todo momento estoy hablando de registrar un menú, podemos registrar tantos como necesitemos. Si nuestro tema tiene un menú en la cabecera y otro en el pie de página para los textos legales, podemos dar de alta dos y desde el backend relacionaremos el menú que creemos con la posición en la que deseamos mostrarlo.
// Registramos un nuevo menú
add_action( 'after_setup_theme', 'registrar_varios_menus' );
function registrar_varios_menus() {
register_nav_menus(
array(
'principal' => __('Menú principal', 'dominio-traduccion'),
'pie' => __('Menú del pie', 'dominio-traduccion')
)
);
}
Una vez registrados los menús que queramos, llega el momento de indicar dónde deseamos mostrar cada uno. Para ello hay que ir a la plantilla del tema donde y en la zona del diseño prevista para ello, incluiremos la función wp_nav_menu
en cuyo parámetro theme_location
incluiremos el identificador del menú a usar, en caso que haya más de uno.
// Imprimimos el menú deseado
wp_nav_menu( array(
'theme_location' => 'principal'
) );
A la hora de imprimir el menú dentro de la plantilla, podemos personalizarlo incluyendo diferentes parámetros en el array para hacer cosas como incluir una clase a nuestro criterio, elegir la profundidad que tendrá o si queremos usar una etiqueta específica como contenedor. Para más información puedes consultar la documentación técnica sobre todo el proceso de crear un nuevo menú.
Deja una respuesta