Currently i am using this code to output menu display :
<?php
wp_nav_menu(array(
'theme_location' => 'songs-category',
'container' => false,
'menu_id' => 'nav',
'menu_class' => '',
'items_wrap' => '<ul id="nav"><li class="active"><a href="#" data-slug="4,5,6,7,8,9" class="xyz">All</a></li>%3$s</ul>'
));
getting output:
<ul id="nav">
<li class="active"><a href="/" title="All">All</a></li>
<li><a href="/">category1</a></li>
<li><a href="/">category2</a></li>
<li><a href="/">category3</a></li>
<li><a href="/">category4</a></li>
<li><a href="/">category5</a></li>
<li><a href="/">category6</a></li>
<li><a href="/">category7</a></li>
<li><a href="/">category8</a></li>
<li><a href="/">category9</a></li>
</ul>
but need output like this :
<ul id="nav">
<li><a href="#" data-slug="4,5,6,7,8,9,10,11,12,13,14,15" class="xyz">All</a></li>
<li><a href="#" data-slug="10" class="xyz">category1</a></li>
<li><a href="#" data-slug="12" class="xyz">category2</a></li>
<li><a href="#" data-slug="15" class="xyz">category3</a></li>
<li><a href="#" data-slug="9" class="xyz">category4</a></li>
<li><a href="#" data-slug="4" class="xyz">category5</a></li>
<li><a href="#" data-slug="11" class="xyz">category6</a></li>
<li><a href="#" data-slug="13" class="xyz">category7</a></li>
<li><a href="#" data-slug="8" class="xyz">category8</a></li>
<li><a href="#" data-slug="7" class="xyz">category9</a></li>
</ul>
I don't know how to achieve this.
Currently i am using this code to output menu display :
<?php
wp_nav_menu(array(
'theme_location' => 'songs-category',
'container' => false,
'menu_id' => 'nav',
'menu_class' => '',
'items_wrap' => '<ul id="nav"><li class="active"><a href="#" data-slug="4,5,6,7,8,9" class="xyz">All</a></li>%3$s</ul>'
));
getting output:
<ul id="nav">
<li class="active"><a href="http://domain/" title="All">All</a></li>
<li><a href="http://domain/category/category1/">category1</a></li>
<li><a href="http://domain/category/category2/">category2</a></li>
<li><a href="http://domain/category/category3/">category3</a></li>
<li><a href="http://domain/category/category4/">category4</a></li>
<li><a href="http://domain/category/category5/">category5</a></li>
<li><a href="http://domain/category/category6/">category6</a></li>
<li><a href="http://domain/category/category7/">category7</a></li>
<li><a href="http://domain/category/category8/">category8</a></li>
<li><a href="http://domain/category/category9/">category9</a></li>
</ul>
but need output like this :
<ul id="nav">
<li><a href="#" data-slug="4,5,6,7,8,9,10,11,12,13,14,15" class="xyz">All</a></li>
<li><a href="#" data-slug="10" class="xyz">category1</a></li>
<li><a href="#" data-slug="12" class="xyz">category2</a></li>
<li><a href="#" data-slug="15" class="xyz">category3</a></li>
<li><a href="#" data-slug="9" class="xyz">category4</a></li>
<li><a href="#" data-slug="4" class="xyz">category5</a></li>
<li><a href="#" data-slug="11" class="xyz">category6</a></li>
<li><a href="#" data-slug="13" class="xyz">category7</a></li>
<li><a href="#" data-slug="8" class="xyz">category8</a></li>
<li><a href="#" data-slug="7" class="xyz">category9</a></li>
</ul>
I don't know how to achieve this.
Share Improve this question edited Mar 1, 2017 at 14:29 Bhavesh 31 bronze badge asked Mar 1, 2017 at 12:25 gul rathodgul rathod 632 silver badges7 bronze badges 1- What output do you have now? – Max Yudin Commented Mar 1, 2017 at 12:39
2 Answers
Reset to default 3You will have to use a custom Walker for your menu. Here is the page in the codex that explains it:
https://codex.wordpress/Class_Reference/Walker
and here:
https://developer.wordpress/reference/classes/walker_nav_menu/
Hope that helps.
You can do a walker or you can do a custom output getting only what you need using the nav_menu_items function:
// Get wordpress menu and do a custom output
$getMenu = wp_get_nav_menu_items( 'menu1'); // Where menu1 can be ID, slug or title
foreach($getMenu as $item){
echo '<li><a href="' . $item->url . '">' . $item->title . '</a></li>';
}