WordPress.org

Make WordPress Core

Opened 3 years ago

Last modified 3 years ago

#15633 reviewing enhancement

Add class to custom menu item when menu url is found in current page

Reported by: elBradford Owned by: filosofo
Milestone: Future Release Priority: normal
Severity: normal Version: 3.0.2
Component: Menus Keywords: needs-refresh
Focuses: Cc:

Description

I found the need to identify custom nav menu items when the page is at a certain URL. For example,

Menu URL: http://mysite.com/wiki/
Page URL: http://mysite.com/wiki/Moose_Attacks

Anything below http://mysite.com/wiki/ is considered to be "within" http://mysite.com/wiki/ so I want to add a class to the menu item whenever that happens.

I made a rough patch with the following code, added just below line 381 of wp-includes/nav-menu-template.php in wordpress 3.0.2:

     if ( strpos($current_url, untrailingslashit($item_url)) == 0 )
          $classes[] = 'current_url_parent';

This probably brings up other problems, such as other custom menu items having that class, but I hope this can be considered. Thanks

Bradford

Change History (2)

comment:1 elBradford3 years ago

I had to change my patch a little bit. Replace lines 380-381 with:

if ( untrailingslashit($item_url) == home_url() )
	$classes[] = 'menu-item-home';
else if ( strpos($current_url, untrailingslashit($item_url)) === 0 )
	$classes[] = 'current-url-parent';

I had to do the else-if because my home page item was being triggered all the time.

comment:2 nacin3 years ago

  • Component changed from General to Menus
  • Keywords needs-refresh added; custom menu removed
  • Milestone changed from Awaiting Review to Future Release
  • Owner set to filosofo
  • Status changed from new to reviewing

Needs a formal patch.

Note: See TracTickets for help on using tickets.