The add_menu_classes WordPress PHP filter allows you to modify the administration menu array by adding custom classes to the top-level items.
Usage
add_filter('add_menu_classes', 'my_custom_add_menu_classes');
function my_custom_add_menu_classes($menu) {
// your custom code here
return $menu;
}
Parameters
$menu(array): Associative array of administration menu items.
More information
See WordPress Developer Resources: add_menu_classes
Examples
Add a custom class to a specific menu item
Add the class ‘custom-class’ to the ‘Posts’ menu item.
add_filter('add_menu_classes', 'add_class_to_posts_menu');
function add_class_to_posts_menu($menu) {
if (isset($menu['edit.php'])) {
$menu['edit.php'][4] .= ' custom-class';
}
return $menu;
}
Add a custom class to all top-level menu items
Add the class ‘all-menu-items’ to every top-level menu item.
add_filter('add_menu_classes', 'add_class_to_all_menu_items');
function add_class_to_all_menu_items($menu) {
foreach ($menu as $key => $value) {
$menu[$key][4] .= ' all-menu-items';
}
return $menu;
}
Remove default classes from a specific menu item
Remove the default class ‘wp-not-current-submenu’ from the ‘Pages’ menu item.
add_filter('add_menu_classes', 'remove_class_from_pages_menu');
function remove_class_from_pages_menu($menu) {
if (isset($menu['edit.php?post_type=page'])) {
$menu['edit.php?post_type=page'][4] = str_replace('wp-not-current-submenu', '', $menu['edit.php?post_type=page'][4]);
}
return $menu;
}
Add an icon to a specific menu item
Add a custom icon to the ‘Media’ menu item using CSS class ‘my-custom-icon’.
add_filter('add_menu_classes', 'add_icon_to_media_menu');
function add_icon_to_media_menu($menu) {
if (isset($menu['upload.php'])) {
$menu['upload.php'][6] = 'my-custom-icon';
}
return $menu;
}
Change the order of menu items
Move the ‘Comments’ menu item to the top of the menu.
add_filter('add_menu_classes', 'change_menu_order');
function change_menu_order($menu) {
if (isset($menu['edit-comments.php'])) {
$comments_menu = $menu['edit-comments.php'];
unset($menu['edit-comments.php']);
array_unshift($menu, $comments_menu);
}
return $menu;
}