Хук admin_body_class
предоставляет возможность добавлять пользовательские CSS классы к тегу <body>
в админ-панели WordPress. Это может быть полезно для изменения стилей интерфейса администрирования, добавления специфического оформления для определенных страниц или улучшения совместимости с вашими плагинами и темами.
Этот фильтр отличается от других фильтров, таких как post_class
и body_class
, по двум основным параметрам:
$classes
представляет собой строку классов, разделённых пробелами, а не массив.- Некоторые классы, относящиеся к ядру WordPress, такие как
wp-admin
,wp-core-ui
, иno-js
, не подлежат изменению и не могут быть удалены.
apply_filters( 'admin_body_class', string $classes );
- $classes (строка) — список классов CSS, разделённых пробелами.
При добавлении новых классов к тегу <body>
необходимо убедиться, что перед и после имени класса есть пробелы, чтобы избежать случайного соединения названий классов от разных плагинов.
Пример 1: Добавление пользовательских классов к тегу <body>
В этом примере мы добавляем два пользовательских класса, my-custom-class
и admin-specific-class
, к тегу <body>
в админ-панели.
function custom_admin_body_class( $classes ) {
// Добавляем классы с пробелами перед и после
$classes .= ' my-custom-class admin-specific-class ';
return $classes;
}
add_filter( 'admin_body_class', 'custom_admin_body_class' );
Пример 2: Добавление классов только на страницах редактирования постов
Этот пример добавляет класс edit-post
только на страницах редактирования записей.
function conditional_admin_body_class( $classes ) {
global $pagenow;
// Проверяем, находимся ли мы на странице редактирования поста
if ( in_array( $pagenow, array( 'post.php', 'post-new.php' ), true ) ) {
$classes .= ' edit-post ';
}
return $classes;
}
add_filter( 'admin_body_class', 'conditional_admin_body_class' );
Пример 3: Добавление классов в зависимости от типа записи
В этом примере мы добавим классы в зависимости от типа записи, которую редактируем. Например, для записей типа page
будет добавлен класс is-page
.
function dynamic_admin_body_class( $classes ) {
global $post;
if ( isset( $post ) ) {
if ( $post->post_type === 'page' ) {
$classes .= ' is-page ';
} elseif ( $post->post_type === 'post' ) {
$classes .= ' is-post ';
}
}
return $classes;
}
add_filter( 'admin_body_class', 'dynamic_admin_body_class' );
Заключение
Хук admin_body_class
в WordPress — это мощный инструмент для кастомизации внешнего вида админ-панели. С его помощью вы можете легко добавлять специфические классы CSS, которые помогут изменить оформление или поведение интерфейса в зависимости от различных условий. Это позволяет улучшить управление стилями и взаимодействие с пользователями, создавая более удобные и эффективные рабочие пространства для администраторов сайта.