add custom class to wordpress nav menu item based on specific condition -


i want add current-menu-item class li if single page. trying using wp_nav_menu_objects hook custom function don't know how particular menu item , set condition assign class it. here code.

add_filter('wp_nav_menu_objects' , 'my_menu_class'); function my_menu_class($menu) {      //if single post page of particular post type (in case 'property')     if( is_single() && is_post_type_archive( 'property' ) ) {      //get menu items     foreach($menu $key => $item) {          // check if menu item "commercial property"         if($item == "commercial property") {                //assign class menu item             $menu[$key]->classes[] = 'current-menu-item';         }     } }      return $menu;         } 

this code represent logic. please suggest if need can achieved method or there better approach it.

thanks.

in wp theme, wanted remove wordpess menu classes, add own , on specific condition ( example if menu has active class ) add class. here s code

function add_custom_classes($classes){      $newclasses[] = "navigation__item";      if( in_array('current_page_item', $classes) ){         array_push($newclasses, "navigation__item-active");     }      return $newclasses; }  add_filter('nav_menu_css_class', 'add_custom_classes', 100, 1); add_filter('nav_menu_item_id', 'add_custom_classes', 100, 1); add_filter('page_css_class', 'add_custom_classes', 100, 1); 

you can add own conditions


Comments