CMS WordPress

[WordPress] Crear shortcode para mostrar el menú

[titulo]Wordpress shortcode main menu[/titulo]

Aunque WordPress incluye mucha flexibilidad a la hora de crear menús, la ubicación de los mismos parece tener que ceñirse obligatoriamente a posiciones preestablecidas. Y eso, en algunos diseños, puede resultar problemático.

En este mini post vamos a guiaros para que podáis crear un shortcode que os permita ponerlos allá donde necesitéis:

1º Creamos el menú que queramos (Apariencia > Menús) y nos fijamos muy especialmente en el nombre que le demos:

2º Como de costumbre, vamos al archivo [codigo]functions.php[/codigo] de nuestro theme (aunque lo ideal sería hacerlo con un tema hijo o crear uno si no existiese) e insertamos el siguiente código:

function cetweb_print_custom_menu_shortcode($atts)
  {
      // Normalize 
      $atts = array_change_key_case((array)$atts, CASE_LOWER);
      $atts = array_map('sanitize_text_field', $atts);
      // Attributes
      $menu_name = $atts['name'];
      $menu_class = $atts['class'];
      return wp_nav_menu(array(
          'menu' => esc_attr($menu_name),
          'menu_class' => 'menu ' . esc_attr($menu_class),
          'echo' => false));
  }
  add_shortcode('print-menu', 'cetweb_print_custom_menu_shortcode');

 

3º Y de esta forma ya hablemos creado la llamada al menú de WordPress, a través de un shortcode.

Se invoca así:

[print-menu name="nombre-tu-menu"]

Donde debemos sustituir «nombre-tu-menu» por el nombre en el que nos fijamos en el paso 1º.

 

Este shortcode permite además añadir estilos que nos permiten personalizar su presentación:

[print-menu name="nombre-tu-menu" class="clase1 clase2 clase 3"]

 

¿Te ha resultado útil esta entrada? ¡Compártela!

Cristian Sarabia Martínez

Desde que a principios de los 90 mi padre desempolvó su Spectrum, no he dejado de probar y experimentar con la tecnología.

Enamorado del mundo web, Full Stack Developer de profesión y diseñador por devoción.

Ahora hago mis pinitos en esto del blogging para compartir con vosotros un poquito de todo lo que la comunidad me ha dado.

4 Comentarios

Haz clic aquí para dejar tu comentario