Mostrar menú de WordPress con Shortcode:
Lo primero que debemos hacer es trabajar en nuestro archivo «functions.php».
Aquí tienes el código que te permitirá mostrar el menú, solo debes copiarlo y pegarlo en el archivo functions.php de tu tema hijo.
/**
* Shortcode para mostrar un menú de WordPress
*/
function rv_print_menu_shortcode( $atts ) {
/**
* Normalize
*
* Como medida de seguridad limpiamos los atributos
* introducidos al escribir el Shortcode.
*/
$atts = array_change_key_case( (array) $atts, CASE_LOWER );
$atts = array_map( 'sanitize_text_field', $atts );
/**
* Atributtes
*
* A continuación guardamos los atributos en 2 variables
*/
$menu_name = $atts['name'];
$menu_class = $atts['class'];
/**
* Creamos la variable $menu_output que va a retornar todo
* lo que conforma nuestro menú y llamamos a la función
* de WordPress wp_nav_menu() y le pasamos como
* parámetros nuestros atributos.
*/
$menu_output = '<div class="shortcode-menu">';
$menu_output .= wp_nav_menu( array(
'menu' => esc_attr( $menu_name ),
'menu_class' => 'menu ' . esc_attr( $menu_class ),
'echo' => false
) );
$menu_output .= '</div>';
return $menu_output;
}
add_shortcode( 'print-menu', 'rv_print_menu_shortcode' );
Para que puedas usar el Shortcode y mostrar el menú donde quieras, solo tienes que copiar y pegar la siguiente línea de código (shortcode)
[print-menu name="nombre-menu"]
solo tienes que cambiar el parámetro name=»nombre-menu» por el nombre que le has puesto a tu menú de WordPress.
Ejemplo:
Por ejemplo, en la siguiente imagen yo tengo una menú de WordPress que se llama prueba.
Y el Shortcode que tengo que escribir es el siguiente:
[print-menu name="prueba"]
Agregar una clase CSS a tu menú:
Para ello solo tienes que añadir class=»nombre-clase» tal como aparece en en siguiente ejemplo:
[print-menu name="nombre-menu" class="nombre-clase"]
También puedes añadir varias clases a la vez incluyendo un espacio entre cada una de ellas.
[print-menu name="nombre-menu" class="nombre-clase1 nombre-clase2"]








