wp_nav_menu自定义walker在li类中添加顺序选项卡号

时间:2012-05-10 12:58:51

标签: wordpress function taxonomy

我想知道是否有办法通过wp_nav_menu为每个li的输出添加一个自动顺序id - 所以它们基本上是

 <ul>
     <li><a href="#tab1" class="tabclick active">Overview</a></li>
     <li><a href="#tab2" class="tabclick">Specs</a></li>
     <li><a href="#tab3" class="tabclick">More Info</a></li>
 </ul>

我想我已经读过有关使用助行器的内容 - 但它超越了我。

1 个答案:

答案 0 :(得分:2)

好的 - 找到一个解决方案基本上是自己构建菜单 - 主要是从http://codex.wordpress.org/Function_Reference/wp_get_nav_menu_items使用wp_get_nav_menu_items

这只是链接到顺序哈希锚点 - 但是上面的页面显示了如何链接到URL

我注释了计数

的位
   <?php
   // Get the nav menu based on $menu_name (same as 'theme_location' or 'menu' arg to wp_nav_menu)
 // This code based on wp_nav_menu's code to get Menu ID from menu slug

$menu_name = 'yourmenuslug';
if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) {
$menu = wp_get_nav_menu_object( $locations[ $menu_name ] );
$menu_items = wp_get_nav_menu_items($menu->term_id);
$menu_list = '<ul id="menu-' . $menu_name . '">';




// this bit adds the counter
$menu_counter = 0;
global $menu_counter;
foreach ( (array) $menu_items as $key => $menu_item ) {
$menu_counter++;


    $title = $menu_item->title;
    $url = $menu_item->url;



// this bit builds the item with the sequential numbering
    if ($menu_counter < 2) {
            $menu_list .= '<li><a href="#tab' . $menu_counter .'" class="tabclick   active"  >' . $title . '</a></li>';
} else {
    $menu_list .= '<li><a href="#tab' . $menu_counter .'" class="tabclick"  >' . $title . '</a></li>';
}

}
$menu_list .= '</ul>';
} else {
$menu_list = '<ul><li>Menu "' . $menu_name . '" not defined.</li></ul>';
}
// $menu_list now ready to output
echo $menu_list;
?>