Well, it is quite a hack I propose, but I would suggest the following:
add_action( 'admin_head', 'chg_menu_on_special_pages_page' );
function chg_menu_on_special_pages_page(){
global $parent_file;
$gallery_page_id = 2;
if( $parent_file != 'edit.php?post_type=page' )
return;
if( ! isset( $_GET['post'] ) || $_GET['post'] != $gallery_page_id )
return;
$parent_file="post.php?post=". $gallery_page_id .'&action=edit';
return;
}
By the global $parent_file
it is decided, which menu gets highlighted. We hook into the admin_head
-action, the last action hook before the menu gets displayed. WordPress already decided, which is the $parent_file
, in the case of your gallery it would be the “edit.php?post_type=page”.
So, what do we do? We check if we are on our “Gallery”-Edit page and if so, we switch $parent_file
to the URL, we’ve registered earlier using add_menu_page()
. In my code, I was setting $gallery_page_id = 2;
to test it.
Files in the admin, you might be interested in are wp-admin/menu-header.php
. Variables, which you might be interested in are $menu
, $submenu
, $parent_file
.
I hope, this helps you.