我需要在文字前添加我的菜单额外图标。所以我在文档中读到我需要实现自定义 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() ) );
答案 0 :(得分:0)
你的$ index是静态的,所以不要直接调用它,而是通过
echo self::$index;
self::$index+=1;