1

我想知道是否有一种方法可以通过 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>

我想我已经读过关于使用助行器的文章——但它超出了我的范围。

4

1 回答 1

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;
?>  
于 2012-05-10T16:47:06.160 回答