I have a custom post type in my wordpress theme. I want to add a custom class to the nav menu for the pages created in that custom post type. I read that you can use a filter hook: "nav_menu_css_class", but my php chops are pretty limited. How do I set up that filter hook to apply only to my custom post type pages in the nav menu and give them a custom class?

link|improve this question
feedback

1 Answer

here is a simply example:

add_filter('nav_menu_css_class', 'auto_custom_type_class', 10, 2 );
function auto_custom_type_class($classes, $item) {

    if ($item->type_label == "CUSTOM_TYPE_NAME"){
        $classes[] = "New_Class";
    }

    return $classes;
}

just change CUSTOM_TYPE_NAME to the name of your custom post type and New_Class with the name of your class and paste this snippet in your theme's functions.php file.

link|improve this answer
That works. Appreciate it! – Colin Jun 15 '11 at 21:09
Glad i could help. – Bainternet Jun 15 '11 at 21:19
Another question: $item->type_label Where does this come from and are there other things you can apply to this variable "$item" ? – Colin Jun 15 '11 at 21:21
the $item object is passed by the apply_filters call and it holds all of the item variables. you can get a list of the by adding somewhere in the function var_dump($item); – Bainternet Jun 15 '11 at 21:28
Wow, sweet! (just ran it) Good to know. Thanks again. – Colin Jun 15 '11 at 22:06
show 2 more comments
feedback

Your Answer

 
or
required, but never shown

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