Skip to content

Instantly share code, notes, and snippets.

@stompweb
Last active August 29, 2015 14:00
Show Gist options
  • Save stompweb/11321145 to your computer and use it in GitHub Desktop.
Save stompweb/11321145 to your computer and use it in GitHub Desktop.
Change menu classes
<?php
function register_my_page() {
global $my_page;
$my_page = add_menu_page( 'My Page', 'My Page', 'edit_pages', 'my_page.php', 'my_page_hook', 'dashicons-groups', 4 );
}
add_action('admin_menu', 'register_my_page');
function highlight_different_menu($parent_file){
global $current_screen;
global $my_page;
if ( $current_screen['base'] == $my_page ) {
$parent_file = 'my_other_page.php';
}
return $parent_file;
}
add_filter('parent_file', 'highlight_different_menu');
@stompweb
Copy link
Author

stompweb commented May 1, 2014

Ok, so I've changed the original gist. When I register a menu item I store the hook that's returned in a global. I then compared that to the base of the current screen to set a new class.

@wpmark
Copy link

wpmark commented May 1, 2014

Still doesn't solve the fact that $parent_file expects admin.php not admin.php?page=wpmark_content. In your example above you are setting the parent file to an already existing WordPress admin top level menu.

@stompweb
Copy link
Author

stompweb commented May 1, 2014

You should be able to just pass wpmark_content then (i.e. your menu slug), I was just giving an example in mine.

@stompweb
Copy link
Author

stompweb commented May 1, 2014

I always tend to add .php as per the codex example too. So wpmark_content.php

@wpmark
Copy link

wpmark commented May 2, 2014

Unfortunately that does not work :-(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment