Hey, you're early! MD6.0 is almost live and this website is still rolling out so please, pardon the dust.

Skip to content

Make “Blog” and other post type archive menu links active when viewing single posts

Even when viewing single blog posts it is still nice to have the “Blog” nav menu link show the active status to give a feel for site hierarchy.

With this snippet you can match the nav link text with a conditional tag to add the <code>current-menu-item</code> class to a specific text string.

This code example targets a nav menu link labeled “Blog” and also highlights it when you are viewing category pages and single blog posts. You can also add more conditionals to target other text links like I have with the Stream.

Comments (0)Forum replies (0)

No replies yet

Loading new replies...

Avatar of Alex
Alex

MD developer

6,710 messages 1,903 likes

Even when viewing single blog posts it is still nice to have the "Blog" nav menu link show the active status to give a feel for site hierarchy.

With this snippet you can match the nav link text with a conditional tag to add the current-menu-item class to a specific text string.

The example below targets a nav menu link labeled "Blog" and also highlights it when you are viewing category pages and single blog posts. You can also add more conditionals to target other text links like I have with the Stream.

Paste to your functions.php file.

<?php
/**
 * Make nav menus active on other types of pages.
 *
 * @since 1.0
 */

function md_child_current_menu_item( $classes, $item ) {
    if (
        ( $item->title == 'Blog' && ( is_category() || is_singular( 'post' ) ) ) ||
        ( $item->title == 'Stream' && ( is_tax( 'stream_categories' ) || is_singular( 'stream' ) ) )
    )
        $classes[] = 'current-menu-item';
    return $classes;
}
add_filter( 'nav_menu_css_class', 'md_current_menu_item', 10, 2 );

Reply Like

click to expand...
Avatar of Alex
Alex

MD developer

5,334 messages 1,333 likes

Even when viewing single blog posts it is still nice to have the "Blog" nav menu link show the active status to give a feel for site hierarchy.

With this snippet you can match the nav link text with a conditional tag to add the current-menu-item class to a specific text string.

The example below targets a nav menu link labeled "Blog" and also highlights it when you are viewing category pages and single blog posts. You can also add more conditionals to target other text links like I have with the Stream.

Paste to your functions.php file.

<?php
/**
 * Make nav menus active on other types of pages.
 *
 * @since 1.0
 */

function md_child_current_menu_item( $classes, $item ) {
    if (
        ( $item->title == 'Blog' && ( is_category() || is_singular( 'post' ) ) ) ||
        ( $item->title == 'Stream' && ( is_tax( 'stream_categories' ) || is_singular( 'stream' ) ) )
    )
        $classes[] = 'current-menu-item';
    return $classes;
}
add_filter( 'nav_menu_css_class', 'md_current_menu_item', 10, 2 );

Reply Like

click to expand...