WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a problem with menu organization. I have a Pages with url "pressroom" and have a Category with the same name. I want to make it a one menu item.

Pressroom (sitename.com/pressroom/)

  • page 1 (sitename.com/pressroom/page1/)
  • page 2 (sitename.com/pressroom/page2/)
  • category with posts (sitename.com/category/pressroom/news/)

When I am in Category - nav_menu parent item have a correct css selector current-menu-ancestor current-menu-parent, but when I am go to post of this category (url changed to sitename.com/pressroom/news/postid/) - css selector of parent menu item disappear.

How can I correct this?

share|improve this question
I don't understand. You want the menu items to treat categories like "parents" of the posts? Categories are not "parents" of posts, why would they have a selector identifying them as such? – s_ha_dum Feb 15 '13 at 14:33
up vote 2 down vote accepted

Check nav menu target URL for '/pressroom/', then check if it's a post. If it fits, add custom class to that menu item.

function my_add_posts_page_ancestor_class( $classes, $item ) {
    if( false !== strpos($item->url, '/pressroom/')
    && is_single($item->ID)
    && !is_page($item->ID) ) {
        $classes[] = 'my-ancestor-class';
    return $classes;
add_filter('nav_menu_css_class', 'my_add_posts_page_ancestor_class', 10, 2);

The code is untested and can be improved. It's a direction to think about.


See what I've found: Add a class to wp_nav_menu() items with URLs included in the current URL

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.