I am using the WordPress function wp_nav_menu to create my main menu.
In this menu, I have a link named “News” for exemple and I would like to make this link highlight when I am in the single.php file template.
At the moment, my code is the one below. I am not “used” to work with this WordPress function.
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
Is there any way to said for exemple
if($is_single())
{
echo 'class="active"';
}
I have checked arround on SO and I founded some informations that might be interesting but nothing is really answering my question.
On this page, some one suggest to check in “Show on screen” options : add class to dropdown menu inside dynamic wordpress menu
I also found this page in the codex, but I’m not sure how to use it : http://codex.wordpress.org/Function_Reference/wp_nav_menu#How_to_add_a_parent_class_for_menu_item
Thx in advance for the help!
wp_nav_menu automatically add “current_page_item” class to li tag. so you can target “current_page_item” for active menu.
}
Well, you have two nice options to do that:
The first one is to add a class name to single.php main div and than add in your CSS file a property like:
.singleClass .nav-menu ul li a {color: red; //any setting you would like }
The other way is adding that custom class to the menu by changing
menu_class
in the call of the menu into the page.If this is not working for you i would like to hear more about your theme hierarchy so i could be more specific with my answer.
In wordpress 4.x it have a class in current menu as
current_page_item
so you have to add css for class.current_page_item
for current and active class like thisand see result after page refresh.