使用Walker添加菜单CSS类功能

时间:2014-01-17 作者:Derek

我正在尝试添加将自定义CSS类插入菜单项的功能。我相信我是通过扩展walker\\u nav\\u菜单来实现的,但我不知道如何调用自定义类。

这似乎是一个很简单的问题,但我已经在这里搜索过了,找不到任何简单的添加自定义类的方法。

现在我只有:

<?php wp_nav_menu( array( \'theme_location\' => \'top-menu\', \'walker\' => new future_walker_class() ) ); ?>
以及

class future_walker_class extends Walker_Nav_Menu {
/*not sure what to put here*/
}
另外,我对PHP/Wordpress相当陌生。我尽量彻底,以免浪费你的时间。

2 个回复
SO网友:Subharanjan

如果是根据类添加图标的问题,请从后端添加图标,并使用该类通过css分配图标。

enter image description here

SO网友:RobBenz

好吧,根据你的代码,我觉得你在处理一个儿童主题,或者你自己的主题这个答案是基于这个假设。

首先,您需要注册(新)菜单。

// -- This will go in functions.php
add_action( \'init\', \'register_my_menus\' );
function register_my_menus() {
  register_nav_menus(
    array(
      \'menu-1\' => __( \'Menu 1\' ),
      \'menu-2\' => __( \'Menu 2\' ),
      \'menu-3\' => __( \'Menu 3\' )
    )
  );
}
然后需要在中为菜单指定位置wp-admin > appearance > menus

然后,您可以定制步行器

// functions.php
class your_new_Walker_Nav_Menu extends Walker_Nav_Menu {
   function start_lvl(&$output, $depth = 0, $args = Array()) {
        $output .= \'<ul class="sub-menu">\';
    }
        function end_lvl(&$output, $depth = 0, $args = Array()) {
        $output .= \'</ul>\';
    }
}
然后,当你准备好调用新菜单时,让我们输入header.php

<!-- header.php -- assuming php is closed at this point -->
    <div class="navbar-header">
    <?php wp_nav_menu(array(
        \'theme_location\'  => \'menu-1\',
   //   \'items_wrap\'      => \'nav-wrap\', un comment if you want 
        \'container_class\' => \'class1 class2\',
        \'walker\'          => new your_new_Walker_Nav_Menu
    ));
    ?>
    </div>

结束

相关推荐

Menus like a CMS

以下是一些内容的结构示例:Parent A -- Child A -- Child B Parent B -- Child C -- Child D Parent A 应链接到的内容Child A 和Parent B 应链接到的内容Child C. 除此之外,我不确定这是否应该完全由wordpress中的“菜单”来管理,或者它是否应该是Parent A 包含子页面的页面。唯一的问题是Parent A 不是真正的内容,只是链接到Child A.如果你需要一个真