We can use third level category in menubar in wordpress.
$thiscat = get_query_var('cat'); // The id of the current category
$catobject = get_category($thiscat,false); // Get the Category object by the id of current category
if($thiscat)
$topcat = get_top_parent_cat($thiscat);
$parentcat = $catobject->category_parent;
global $wp_query;
$page_title = $wp_query->post->post_title;
$current_dest_menu = 'level-3';
if($page_title=='Destinations' || $topcat==158)
$current_dest_menu = 'level-3 current-menu-item';
$custom_menu = '<li class="'.$current_dest_menu.'"><a href="'.get_bloginfo("url").'/destinations/">Destinations</a>
<ul class="sub-menu">';
$categories = get_categories('&orderby=name&order=ASC&child_of=158&hide_empty');
$count =1;
$x = 0;
foreach($categories as $category) {
if ($category->category_parent ==158){
$countchildren = count (get_term_children( $category->cat_ID, 'category' ));
if($parentcat==$category->cat_ID){
if($countchildren>1)
$menu_class_name= "col-3-level current-menu-ancestor";
else
$menu_class_name= "col-2-level current-menu-ancestor";
} else{
if($countchildren>1)
$menu_class_name= "col-3-level";
else
$menu_class_name= "col-2-level";
}
$custom_menu .=' <li class="'.$menu_class_name.'"><a href="'.get_category_link($category->cat_ID).'">'.$category->name.'</a><ul>';
$args = array(
'orderby' => 'name',
'hide_empty' => true,
'child_of' =>$category->cat_ID
);
$child_categories = get_categories($args);
foreach($child_categories as $category) {
if($thiscat==$category->cat_ID)
$custom_menu .='<li class="current-menu-item"><a href="'.get_category_link($category->cat_ID).'">'.$category->cat_name.'</a></li>';
else
$custom_menu .='<li><a href="'.get_category_link($category->cat_ID).'">'.$category->cat_name.'</a></li>';
}
$custom_menu .='</ul></li>' ;
}}
$custom_menu .='</ul></li>';
wp_nav_menu( array(
'menu'=>'Main Navigation',
'container_class' => 'mainMenu align-right',
'items_wrap' => '<ul id="menu-main-navigation" class="menu">'.$custom_menu.'%3$s</ul>'
) );

No comments:
Post a Comment