questions

Why WP_Screeen doesn’t show all options with admin_body_class

Rate this post

I was trying to add a specific class to the admin section. I created a new top-level menu page and now I want to add a specific class to this top-level menu and its submenu items.

What I have tried so far is that I used WP_Screen to get the data of the current screen.

If I check the submenu page and I did var_dump(get_current_screen()). It shows every detail.

But now the case is that If I use get_current_screen() with admin_body_class why it doesn’t work.

As far as I know, the hook is early called before the submenu page details are loaded.

Now I want to ask, how it is possible to check if the submenu has a specific parent base,

Here is the code that I tried so far.

add_filter('admin_body_class', 'tw_admin_body_class');
function tw_admin_body_class($classes) {
    $screen = get_current_screen();
    var_dump($screen);
    if (  $screen->parent_base == 'tw-top' )  {
        return $classes . ' raashid';
    }
}

But parent_base is set to null. Any idea how to add class to submenu pages if it is under the specific yop-level menu.

 

✔️Solution:

It worked by using the Id option. Here is the working option.

add_filter( 'admin_body_class', 'my_admin_body_class' );
function my_admin_body_class( $classes ) {
    $screen = get_current_screen();
    $classes .= ' raashid';

    if ( get_plugin_page_hook( 'tw-top', '' ) === $screen->id ) {
       return $classes;
    }
}

Leave a Reply

Your email address will not be published.

Back to top button