Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Add a parent class for menu item
- */
- function add_menu_parent_class( $items ) {
- $parents = array();
- foreach ( $items as $item ) {
- if ( $item->menu_item_parent && $item->menu_item_parent > 0 ) {
- $parents[] = $item->menu_item_parent;
- }
- }
- foreach ( $items as $item ) {
- if ( in_array( $item->ID, $parents ) ) {
- $item->classes[] = 'has-dropdown';
- }
- }
- return $items;
- }
- add_filter( 'wp_nav_menu_objects', 'add_menu_parent_class' );
- /**
- * Add a class to sub menu
- */
- class Sub_Menu extends Walker_Nav_Menu {
- // add classes to ul sub-menus
- function start_lvl( &$output, $depth ) {
- $indent = ( $depth > 0 ? str_repeat( "\t", $depth ) : '' );
- $display_depth = ( $depth + 1);
- $class_names = 'dropdown';
- $output .= "\n" . $indent . '<ul class="' . $class_names . '">' . "\n";
- }
- }
- /**
- * Remove extraneous WordPress classes & id's
- */
- function my_css_attributes_filter($var) {
- return is_array($var) ? array_intersect($var, array('current-menu-item', 'has-dropdown', 'logged-in')) : '';
- }
- add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 1);
- add_filter('nav_menu_item_id', 'my_css_attributes_filter', 100, 1);
- add_filter('page_css_class', 'my_css_attributes_filter', 100, 1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement