Wordpress: funcion para personalizar wp_nav_menu()


/ Published in: PHP
Save to your folder(s)



Copy this code and paste it in your HTML
  1. /*
  2. OPCIÓN NÚMERO UNO sidemenu()-------------
  3. */
  4. function sidemenu(){
  5. $sidemenu = '';
  6. $menuID = 'main-menu';
  7. $menuClass = 'clearfix';
  8. if (function_exists('wp_nav_menu')) {
  9. $sidemenu = wp_nav_menu( array( 'theme_location' => 'sidemenu', 'container' => '', 'fallback_cb' => '', 'menu_class' => $menuClass, 'menu_id' => $menuID, 'echo' => false, 'link_before' => '<span></span><strong>' , 'link_after' => '</strong>') );
  10. };
  11. //si no hay ningún menú activado por defecto muestra el listado de páginas
  12. if ($sidemenu == '') {
  13. ?>
  14. <ul id="<?php echo $menuID;?>" class="<?php echo $menuClass;?>">
  15. <li <?php if (is_home() || is_front_page()) echo('class="current_page_item"') ?>><a href="<?php bloginfo('url'); ?>"><span></span><strong>Home</strong></a></li>
  16. <?php wp_list_pages( array( 'link_before' => '<span></span><strong>' , 'link_after' => '</strong>', 'title_li' => '' ) );?>
  17. </ul>
  18. <?php
  19. } else {
  20. echo $sidemenu;
  21. }
  22. }
  23. //añade un enlace a la página de inicio en el menú superior
  24. function addHomeMenuLink($menuItems, $args) {
  25. if('sidemenu' == $args->theme_location) {
  26. if ( is_front_page() ) { $class = ' class="current-menu-item"';}
  27. else {$class = '';}
  28. $homeMenuItem = '<li'.$class.'>'.$args->before.'<a href="'.home_url('/').'" title="Home">'.$args->link_before.'Home'.$args->link_after.'</a>'.$args->after.'</li>';
  29. $menuItems = $homeMenuItem . $menuItems;
  30. }
  31. return $menuItems;
  32. }
  33. add_filter( 'wp_nav_menu_items', 'addHomeMenuLink', 10, 2 );
  34.  
  35.  
  36. /*
  37. OPCIÓN NÚMERO ['show_home'] --------------
  38. */
  39. function custom_page_menu_args( $args ) {
  40. $args['show_home'] = true;
  41. return $args;
  42. }
  43. add_filter( 'wp_page_menu_args', 'custom_page_menu_args' );

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.