Advertisement
Guest User

Untitled

a guest
Nov 30th, 2015
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4. * Add a parent class for menu item
  5. */
  6. function add_menu_parent_class( $items ) {
  7.  
  8. $parents = array();
  9. foreach ( $items as $item ) {
  10. if ( $item->menu_item_parent && $item->menu_item_parent > 0 ) {
  11. $parents[] = $item->menu_item_parent;
  12. }
  13. }
  14.  
  15. foreach ( $items as $item ) {
  16. if ( in_array( $item->ID, $parents ) ) {
  17. $item->classes[] = 'has-dropdown';
  18. }
  19. }
  20.  
  21. return $items;
  22. }
  23. add_filter( 'wp_nav_menu_objects', 'add_menu_parent_class' );
  24. /**
  25. * Add a class to sub menu
  26. */
  27. class Sub_Menu extends Walker_Nav_Menu {
  28. // add classes to ul sub-menus
  29. function start_lvl( &$output, $depth ) {
  30. $indent = ( $depth > 0 ? str_repeat( "\t", $depth ) : '' );
  31. $display_depth = ( $depth + 1);
  32. $class_names = 'dropdown';
  33. $output .= "\n" . $indent . '<ul class="' . $class_names . '">' . "\n";
  34. }
  35. }
  36. /**
  37. * Remove extraneous WordPress classes & id's
  38. */
  39. function my_css_attributes_filter($var) {
  40. return is_array($var) ? array_intersect($var, array('current-menu-item', 'has-dropdown', 'logged-in')) : '';
  41. }
  42. add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 1);
  43. add_filter('nav_menu_item_id', 'my_css_attributes_filter', 100, 1);
  44. add_filter('page_css_class', 'my_css_attributes_filter', 100, 1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement