Почему WP_Screeen не показывает все параметры с помощью admin_body_class

#wordpress #plugins #menu

#wordpress #Плагины #меню

Вопрос:

Я пытался добавить определенный класс в раздел администратора. Я создал новую страницу меню верхнего уровня, и теперь я хочу добавить определенный класс в это меню верхнего уровня и его пункты подменю.

Что я пробовал до сих пор, так это то, что я использовал WP_Screen для получения данных текущего экрана.

Если я проверю страницу подменю, и я это сделал var_dump(get_current_screen()) . Он показывает каждую деталь.

Но теперь дело в том, что если я использую get_current_screen() with admin_body_class почему это не работает.

Насколько я знаю, перехват вызывается раньше, чем загружаются сведения о странице подменю.

Теперь я хочу спросить, как можно проверить, имеет ли подменю определенную родительскую базу,

Вот код, который я пробовал до сих пор.

 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';
    }
}
 

Но parent_base установлено значение null . Есть идеи, как добавить класс на страницы подменю, если он находится в определенном меню уровня yop.

Ответ №1:

Это сработало с помощью параметра Id. Вот рабочий вариант.

 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;
    }
}