2015-04-12 71 views
0

我需要在文本前添加我的菜單中的額外圖標。所以我在文檔中看到我需要實現自定義Walker_Nav_Menu。經過一些分析,我認識到我可以用裝飾模式實現我的自定義步行者協議。我有非常小的expirience在PHP特別是wordpress。我的代碼奇怪。看它:自定義步行裝飾器

class Walker_nav_menu_Decorator extends Walker_Nav_Menu{ 
    public $menu; 
    public static $index = 0; 
    function __construct() { 
     $menu = new Walker_Nav_Menu(); 
    } 

    public function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0) { 
     if($item->title == "Main Menu"){ 
      $args->before = "TEST"; 
     } 
     echo $index; 
     $index+=1; 
     parent::start_el($output, $item, $depth, $args, $id); 
    } 
} 

它不會在所有OO呼應$指數。另外在每個菜單項前添加額外的「測試」字。我該如何正確地做,以及爲什麼這個版本不起作用?

我的班級我的functions.php文件,我在這裏喊我的菜單:

wp_nav_menu(array('theme_location' => 'main_menu', 'container' => 'nav' ,'container_class' => 'menu', 'walker' => new Walker_nav_menu_Decorator())); 

回答

0

您$指數是靜態的,所以不要直接調用它,而是由

echo self::$index; 
    self::$index+=1;