#18853 closed defect (bug) (fixed)

Menus Admin Screen Doesn't Accept Body Classes

Reported by: JohnONolan Owned by: dd32
Priority: normal Milestone: 3.3
Component: Administration Version: 3.3
Severity: normal Keywords: has-patch
Cc:

Description

This is going to be a hazy bug report, because it's at the outer limits of my technical ability, but:

Using this code

function my_admin_body_class( $classes ) {
	if ( is_admin() ) {
		$classes .= 'extra-class';
	}
	return $classes;
}
add_filter('admin_body_class', 'my_admin_body_class');

I can add a class of "extra-class" to the admin body tag on every single page... except Appearance > Menus. Where the class doesn't get inserted at all.

I'm seeing this both in 3.2 and latest trunk. Apologies if this is something I'm doing wrong... like I say - outer limits.

Attachments (3)

18853.patch (613 bytes) - added by SergeyBiryukov 20 months ago.
18853.2.patch (731 bytes) - added by johnbillion 20 months ago.
18853.3.patch (1.2 KB) - added by SergeyBiryukov 20 months ago.
Fixes admin_body_class on Widgets screen as well

Download all attachments as: .zip

Change History (10)

Confirmed. The culprit is lines 435-440 in wp-admin/nav-menus.php which is treating admin_body_class as an action instead of a filter and not returning anything.

  • Keywords has-patch added; needs-patch removed

Damnit, beaten by Sergey ;-)

Same for Widgets screen in the accessibility mode:
http://core.trac.wordpress.org/browser/tags/3.2.1/wp-admin/widgets.php#L26

A workaround could be calling the function with a later priority and with a whitespace in the string:

function my_admin_body_class( $classes ) {
	if ( is_admin() ) {
		$classes .= ' extra-class';
	}
	return $classes;
}
add_filter('admin_body_class', 'my_admin_body_class', 11);
  • Milestone changed from Awaiting Review to 3.3

Geeze, SergeyBiryukov even beats me these days!

I've just gone through checking this whilst you guys were busy posting, Widgets and Menu's are the only location which overwrites, menu uses add_action rather than add_filter and iframe's don't get the admin_body_class filter at all (and are missing the wp-admin class too)

(no need to patch the iframe code btw, I've got it changed already!)

You guys are all insanely quick. Also - I'm glad I'm not a complete moron after all. Well, you know, at least in this context.

Fixes admin_body_class on Widgets screen as well

  • Owner set to dd32
  • Resolution set to fixed
  • Status changed from new to closed

In [18882]:

Fix admin_body_class filter for Menu's and Widgets pages, Include the filter in Iframe's. Props SergeyBiryukov & johnbillion. Fixes #18853

Note: See TracTickets for help on using tickets.