[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