Pergunta
I'm creating a template in HTML5. On navigatiom menu i need to implement something like this
<nav>
<a href="url1">url1</a>
<a href="url1">url2</a>
<a href="url1">url3</a>
<a href="url1">url4</a>
...
<a href="urln">urln</a>
</nav>
If i use 'wp_nav_menu', it prints
<div><ul><li><a>
when i need just
<a>
There is a way to get that? Thanks!
Solução
Use a custom walker:
class WPSE_33175_Simple_Walker extends Walker
{
public function walk( $elements, $max_depth )
{
$list = array ();
foreach ( $elements as $item )
$list[] = "<a href='$item->url'>$item->title</a>";
return join( "\n", $list );
}
}
… and then call wp_nav_menu()
like this:
wp_nav_menu(
array (
'theme_location' => 'your_registered_theme_location',
'walker' => new WPSE_33175_Simple_Walker,
'items_wrap' => '<nav>%3$s</nav>'
)
);
Outras dicas
I'd suggest using the wp_nav_menu_items
filter.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a wordpress.stackexchange