[wp-trac] [WordPress Trac] #18232: wp_nav_menu - Setting walker parameter affects fallback_cb (wp_page_menu)

WordPress Trac wp-trac at lists.automattic.com
Sun Jul 24 08:14:35 UTC 2011


#18232: wp_nav_menu - Setting walker parameter affects fallback_cb (wp_page_menu)
--------------------------+-----------------------------
 Reporter:  bryanjwatson  |      Owner:
     Type:  defect (bug)  |     Status:  new
 Priority:  normal        |  Milestone:  Awaiting Review
Component:  Menus         |    Version:  3.2.1
 Severity:  normal        |   Keywords:  needs-patch
--------------------------+-----------------------------
 When using the walker parameter with wp_nav_menu and there is no menu
 present, wp_nav_menu falls back by default (set with fallback_cb) to
 wp_page_menu. It appears that the set walker also affects wp_page_menu,
 which in most cases breaks the output.

 wp_nav_menu usage:
 {{{
 <?php wp_nav_menu(array('walker'=> new Walker_Nav_Menu)); ?>
 }}}

 Output when no menu is present (falling back on wp_page_menu):
 {{{
 // Formatted for readability
 <div class="menu">
         <ul>
                 <li id="menu-item-1" class="menu-item-1"><a></a></li>
                 <li id="menu-item-2" class="menu-item-2"><a></a></li>
                 <li id="menu-item-3" class="menu-item-3"><a></a></li>
         </ul>
 </div>
 }}}

 Expected output:
 {{{
 // Formatted for readability
 <div class="menu">
         <ul>
                 <li class="page_item page-item-1"><a href="/first/"
 title="First">First</a></li>
                 <li class="page_item page-item-2"><a href="/second/"
 title="Second">Second</a></li>
                 <li class="page_item page-item-3"><a href="/third/"
 title="Third">Third</a></li>
         </ul>
 </div>
 }}}

 As you can see, the output from wp_page_menu is getting filtered through
 the walker, but since the walker was designed for menus specifically, it
 renders the default output from wp_page_menu useless (empty tags..etc).

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/18232>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list