martes, 1 de mayo de 2012

Insertar un menú en una entrada (post) con wp_nav_menu

En ocasiones requerimos incluir un menú dentro de una entrada, pero no podemos incluir el código php directamente en la entrada para lograr esto debemos utilizar shortcode. 

Como hacerlo? 

Primero creamos la siguiente función dentro del archivo functions.php:  

// Function que devuelve un menú
function list_menu($atts, $content = null) {
 extract(shortcode_atts(array(  
  'menu'            => '', 
  'container'       => 'div', 
  'container_class' => '', 
  'container_id'    => '', 
  'menu_class'      => 'menu', 
  'menu_id'         => '',
  'echo'            => true,
  'fallback_cb'     => 'wp_page_menu',
  'before'          => '',
  'after'           => '',
  'link_before'     => '',
  'link_after'      => '',
  'depth'           => 0,
  'walker'          => '',
  'theme_location'  => ''), 
  $atts));
 
 
 return wp_nav_menu( array( 
  'menu'            => $menu, 
  'container'       => $container, 
  'container_class' => $container_class, 
  'container_id'    => $container_id, 
  'menu_class'      => $menu_class, 
  'menu_id'         => $menu_id,
  'echo'            => false,
  'fallback_cb'     => $fallback_cb,
  'before'          => $before,
  'after'           => $after,
  'link_before'     => $link_before,
  'link_after'      => $link_after,
  'depth'           => $depth,
  'walker'          => $walker,
  'theme_location'  => $theme_location));
}
//Crea el shortcode
add_shortcode("listmenu", "list_menu");

Para utilizar el código dentro de un post simplemente agregamos lo siguiente:  [listmenu menu=nombredelmenu].  Podemos adicionar las demás caracteríticas de  wp_nav_menu que ya conocemos: [listmenu menu=nombredelmenu menu_class=cssclass].

Podemos crear infinidad de usos para esta función, como la creación de un mapa de sitio en una entrada, crear submenú que se visualicen dentro de ciertos lugares de nuestro sitio. 

Plantillas para wordpress:

Les presento una excelente opción de personalizar nuestro sitio, con plantillas listas para utilizar y con un diseño que le darán un gran toque a nuestro sitio.


3 comentarios:

  1. Funciona genial, recomendable 100% por lo menos para mi.

    Muchas gracias

    ResponderEliminar
  2. Muy bueno!!! mi unica duda, cómo le das el menu_class ???

    ResponderEliminar
  3. Funciona muy bien, Muchas gracias

    ResponderEliminar

Desea contactar con nosotros, deje un comentario y pronto le daremos respuesta.