Registrar nuevo menú en WordPress

Registrar nuevo menú en WordPress

6 de julio 2021

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ú.

Publicado por Jesús Tovar

Categorías: PHP, Programación, WordPress

Etiquetas:

Deja una respuesta

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