2012-05-11 65 views
0

我有一個自定義WordPress主題,我實現了自定義步行者的導航WordPress的NAV沃克沒有顯示

在我的functions.php,我有這樣的代碼

class My_Walker extends Walker_Nav_Menu 
    { 
     function start_el(&$output, $item, $depth, $args) { 
      global $wp_query; 
      $indent = ($depth) ? str_repeat("\t", $depth) : ''; 

      $class_names = $value = ''; 

      $classes = empty($item->classes) ? array() : (array) $item->classes; 

      $class_names = join(' ', apply_filters('nav_menu_css_class', array_filter($classes), $item)); 
      $class_names = ' class="' . esc_attr($class_names) . '"'; 

      $output .= $indent . '<li id="menu-item-'. $item->ID . '"' . $value . $class_names .'>'; 

      $attributes = ! empty($item->attr_title) ? ' title="' . esc_attr($item->attr_title) .'"' : ''; 
      $attributes .= ! empty($item->target)  ? ' target="' . esc_attr($item->target ) .'"' : ''; 
      $attributes .= ! empty($item->xfn)  ? ' rel="' . esc_attr($item->xfn  ) .'"' : ''; 
      $attributes .= ! empty($item->url)  ? ' href="' . esc_attr($item->url  ) .'"' : ''; 

      $item_output = $args->before; 
      $item_output .= '<a'. $attributes .'>'; 
      $item_output .= $args->link_before . apply_filters('the_title', $item->title, $item->ID) . $args->link_after; 
      $item_output .= '<br /><span class="sub">' . $item->description . '</span>'; 
      $item_output .= '</a>'; 
      $item_output .= $args->after; 

      $output .= apply_filters('walker_nav_menu_start_el', $item_output, $item, $depth, $args); 
     } 
    } 

,並在我的header.php

<div id="access"> 
    <?php 
    wp_nav_menu(array(
     'theme_location' => 'primary', 
     'walker'=> new My_Walker 
    )); 
    ?> 
</div> 

但是當我查看我的網頁源代碼,沒有在元素中沒有數據

<div id="access"> 
      <div class="menu"><ul><li id="menu-item-5" class=""><a><br /><span class="sub"></span></a></li><li id="menu-item-8" class=""><a><br /><span class="sub"></span></a></li><li id="menu-item-10" class=""><a><br /><span class="sub"></span></a></li><li id="menu-item-13" class=""><a><br /><span class="sub"></span></a></li><li id="menu-item-15" class=""><a><br /><span class="sub"></span></a></li><li id="menu-item-17" class=""><a><br /><span class="sub"></span></a></li></ul></div> 
     </div> 

這是假設是一個簡單的學步車,但我不明白它的工作

回答

1

變化:

'walker'=> new My_Walker 

要:

'walker'=> new My_Walker() 
+0

沒有運氣maiorano,它仍然不顯示任何東西 – rickyit

+1

@rickyit你檢查了你的theme_location名稱以匹配註冊名稱嗎?我有一個問題,一旦我改變了註冊名稱,而不是我的wp_nav_menu調用中的theme_location參數,並且獲取了空元素。 – maiorano84

0

有同樣的問題,希望你已經在你的wp-admin中正確設置菜單?去wp-Admin-> Design-> Menus並點擊保存按鈕解決了我的問題。

因爲我在開發區嘗試它,我只有我想要的鏈接到nav_menu的示例網站。有趣的是,walker-function會觸發並獲取博客中所有頁面的ID。但$ item-> title是NULL。