Wordpress改变li类名称没有walker?

时间:2017-05-16 21:59:47

标签: php wordpress css3 class

在wordpress中是否有任何可能的方法来改变" li"没有使用沃克到wp_nav_menu()

'sub-menu' => 'dropdown',

我试过这样的事情,但它没有工作:

<?php
$args = array('theme_location' => 'navigate',
                'container' => '',
                'container_class' => 'none',
                'menu_class' => 'nav middle navbar-nav',
                'menu_id' => 'none',
                'sub-menu' => 'dropdown',
    );

wp_nav_menu( $args );

?>

我需要一个简单的解决方案,只是不要使用Walker。

2 个答案:

答案 0 :(得分:1)

您可以使用一个钩子来更改菜单<li>元素上的类:nav_menu_css_class

您的问题并未说明您正在尝试使用“下拉”课程。在我的示例中,我将'dropdown'类添加到嵌套菜单项。

/**
 * Modify the classes applied to menu items in the 'navigate' menu.
 *
 * @param array    $classes The CSS classes that are applied to the menu item's `<li>` element.
 * @param WP_Post  $item    The current menu item.
 * @param stdClass $args    An object of wp_nav_menu() arguments.
 * @param int      $depth   Depth of menu item. Used for padding.
 *
 * @return array 
 */
function wpse_modify_nav_menu_item_classes( $classes, $item, $args, $depth ) {

    // Only apply changes to the correct menu, 'navigate',
    if ( 'navigate' !== $args->theme_location ) {
        return $classes;
    }

    // Modify menu li classes here...
    // Add 'dropdown' class to nested menu items.
    if ( 1 <= $depth ) {
        $classes[] = 'dropdown';
    } 

    // We're using a filter so don't forget to return.
    return $classes;
}
add_filter( 'nav_menu_css_class', 'wpse_modify_nav_menu_item_classes', 10, 4 ); 

答案 1 :(得分:1)

如果你想改变里面的ul的类名,试试这个。 将此代码放入主题的functions.php文件

function change_submenu_class_name($ submenu){

$ submenu = preg_replace('/ class =“sub-menu”/','/ class =“dropdown”/',$ submenu);

返回$ submenu;
}
的add_filter( 'wp_nav_menu', 'change_submenu_class_name');

或者,如果您想将课程添加到li,您可以从admin执行此操作,只需登录管理员并按照以下步骤操作: 转到外观 - &gt;菜单并执行此过程 http://prntscr.com/f98s4v

如果您有任何疑问,请告诉我。