GWcode CatMenu

Create dynamic multi-level category based navigation menus in ExpressionEngine 2.x. The menus will be opened up automatically based on where the visitor navigates to.

Easy to style with CSS, Multi Site Manager compatible and free!

GWcode CatMenu has been rewritten completely and is now being developed for EE 2.x only. To view the old documentation, please visit the GWcode CatMenu Legacy pages.

Try the demo

A common problem seen on the ExpressionEngine forums and Twitter #eecms hashtag:

When a user clicks a parent category link on the resulting page I need to automatically display a list of child categories based on the parent category page visited.

That is exactly what this plugin does. It allows you to create a dynamic multi-level category based menu for:

  • an entry, by using the entry_id or url_title parameter. It will then create the menu and open up the categories in the menu where the entry has been added to;
  • one or more categories, by using the cat_id or cat_url_title parameter. It will then open up those categories in the menu and show possible child categories;
  • one or more channels or category groups, by using the channel, channel_id or group_id parameter.

You can use any combination of the parameters mentioned above. For example, you could use both the group_id and cat_id parameters to create a combined menu for two category groups and open up one or more categories.

Some key features:

  • have categories with a certain depth in the tree to be opened by using the depth_open or active_depth_open parameters;
  • define the order in which category groups should be displayed in the menu with the group_id parameter. For example, a menu created with group_id="1|2" is in a different order compared to a menu created with group_id="2|1"
  • show the number of entries (with or without a certain status) that have been posted in each category, by using the entry_count or total_entry_count variables in combination with the entry_count or status parameter;
  • choose between a <ol> tag or <ul> tag for the menu, by using the list_type parameter;
  • style the menu to your liking with CSS, by using the CSS id's and classes that are (optionally) added to the menu;
  • use variable conditionals so that you'll be able to link to a different template just for last child categories, or add a CSS class to the last child category hyperlinks for example.