Registrar nuevo menú en WordPress

Registrar nuevo menú en WordPress

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

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