【问题标题】:How to pass class name to sub menu item in wp_nav_menu如何将类名传递给 wp_nav_menu 中的子菜单项
【发布时间】:2017-07-10 10:57:06
【问题描述】:

我想将类名添加到子菜单 ul

wp_nav_menu(array('theme_location' => 'primary-menu', 'menu_id' => 'primary-menu'));

【问题讨论】:

  • 没有默认方法可以做到这一点;您必须为此创建自定义导航步行器功能。但是为什么你首先想要这个,你想要达到的最终结果是什么?如果您只是想以不同的方式格式化这些项目 - 这里很可能不需要额外/不同的类,而只需要在样式表中正确使用选择器。

标签: php wordpress


【解决方案1】:

试试这个,我相信这会对你有所帮助。 wp_nav_menu 过滤器应该可以帮助您这样做,或者还有其他过滤器wp_nav_menu_itemswp_nav_menu_{$menu->slug}_items 应该可以帮助您。访问this 了解更多信息。

function new_submenu_class($menu) {    
    $menu = preg_replace('/ class="sub-menu"/','/ class="yourclass" /',$menu);        
    return $menu;      
}

add_filter('wp_nav_menu','new_submenu_class'); 

或扩展Walker_Nav_Menu 类并覆盖start_lvl()

【讨论】:

    【解决方案2】:

    替换类

        <?php 
    $defaults = array(
        'theme_location'  => 'primary-menu',
        'menu'            => '',
        'container'       => '',
        'container_class' => '',
        'container_id'    => '',
        'menu_class'      => '',
        'menu_id'         => 'primary-menu',
        'echo'            => false,
        'fallback_cb'     => '',
        'before'          => '',
        'after'           => '',
        'link_before'     => '',
        'link_after'      => '',
        'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',
        'depth'           => 0,
        'walker'          =>''
    );
    // your class name : like menu_sub
    echo str_replace('sub-menu', 'menu_sub', wp_nav_menu( $defaults)
    );
    ?>
    

    【讨论】:

      猜你喜欢
      • 2011-06-29
      • 1970-01-01
      • 2013-08-19
      • 1970-01-01
      • 1970-01-01
      • 2012-07-06
      • 2020-10-24
      • 2012-07-28
      • 1970-01-01
      相关资源
      最近更新 更多