2011-10-26 49 views
5

我需要一個標題添加到我的菜單,這是由wp_nav_menu建......是這樣的:如何使用wp_nav_menu在ul之前添加標題?

<div class="container"> 
    <div class="title">My Menu Title</div> 
    <ul class="menu"> 
    <li class="item"><a href="#">Item 1</a></li> 
    <li class="item"><a href="#">Item 2</a></li> 
    <li class="item"><a href="#">Item 3</a></li> 
    </ul> 
</div> 

我覺得很奇怪,這不是默認包含:■

回答

6

這應該適合你!

wp_nav_menu(
    array(
    'items_wrap' => '<div class="title">Your menu title</div><ul class="%2$s">%3$s</ul>' 
) 
); 
+1

你搖滾!謝謝:D – SomethingOn

2

這似乎是一個略微沙啞的選擇,我也跟着每次對WordPress的抄本指導,並鏈接推薦的指南,並items_wrap做了什麼都沒有,我原來的菜單代碼爲

<?php wp_nav_menu(array('theme_location' => 'primary','items_wrap' => '<ul id="%1$s" class="sf-menu %2$s">%3$s</ul>')); ?> 

,沒有工作和多揪頭髮後,我改變了這個

<?php wp_nav_menu(array('items_wrap' => '<ul class="sf-menu %2$s">%3$s</ul>')); ?> 

哪些呢,兩者基本一致,因此,如果它不工作第一次不要放棄,剝去和繼續嘗試ING!

-3

哈克功能wp_nav_menu()在/wp-includes/nav-menu-template.php 行之後添加270

$nav_menu = $items = ''; 

這一行:

$nav_menu .='<h3>'.$menu->name.'</h3>'; 
0

通常有一種方法來不用編輯核心就可以做到。我複製了wp_nav_menu()函數代碼並稍加修改即可。

// set menu arguments 
    $args = array('theme_location' => 'primary_navigation'); 

    // if menu parameter set directly get menu object directly 
    if (isset($args['menu'])) 
    $menu = wp_get_nav_menu_object($args['menu']); 
    // otherwise get it from theme location 
    elseif (!isset($menu) && $args['theme_location'] && ($locations = get_nav_menu_locations()) && isset($locations[ $args['theme_location'] ])) 
    $menu = wp_get_nav_menu_object($locations[ $args['theme_location'] ]); 

    // if menu name exists, pass it into items_wrap 
    if (isset($menu) && isset($menu->name)) 
    $args['items_wrap'] = '<h6>'. $menu->name .'</h6><ul class="%2$s">%3$s</ul>'; 
    wp_nav_menu($args); 

WordPress Codex,你永遠不應該砍WordPress的核心,這是因爲:

Do not hack core

相關問題