自定义步行者装饰

时间:2015-04-12 13:49:38

标签: php wordpress

我需要在文字前添加我的菜单额外图标。所以我在文档中读到我需要实现自定义 Walker_Nav_Menu 。经过一些分析,我认识到我可以实现我的自定义walker符合装饰模式。我在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);
    }
}

它根本没有回显 $ index 。另外添加额外的" TEST"每个菜单项之前的单词。我该如何正确地做到这个版本为什么不起作用?

我的课程在我的functions.php文件中,我在这里调用我的菜单:

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

1 个答案:

答案 0 :(得分:0)

你的$ index是静态的,所以不要直接调用它,而是通过

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