WordPress как на ладони
Официальная конференция по WordPress в Moскве 18-19 августа, начало в 9:00 wordpress jino

admin_body_class хук-фильтр . WP 2.3.0

Позволяет добавлять к тегу body свои CSS классы в админ-панели сайта.

Это фильтр отличается от post_class и body_class следующим:

  1. $classes - это CSS классы, разделенные пробелами вместо массива.
  2. Классы ядра не могут быть изменены, например: wp-admin, wp-core-ui, no-js и другие.

Использование

add_filter( 'admin_body_class', 'filter_function_name_4137' );
function filter_function_name_4137( $classes ){
	// filter...

	return $classes;
}
$classes(строка)
Классы CSS, разделенные пробелами.

Примеры

#1 Добавим свои классы к тегу <body> в админке

## Добавим свои классы к тегу `<body>` в админке
add_action( 'admin_body_class', 'add_my_class' );
function add_my_class( $classes ){
	$my_class = 'my-css-1 my-css-2';
	retrun $classes ? $classes . ' ' . $my_class : $my_class;
}

Где используется хук

В файле: /wp-admin/admin-header.php

Код хука-фильтра admin_body_class

Фрагмент из: wp-admin/admin-header.php VER 4.9.8
...
<?php
/**
 * Filters the CSS classes for the body tag in the admin.
 *
 * This filter differs from the {@see 'post_class'} and {@see 'body_class'} filters
 * in two important ways:
 *
 * 1. `$classes` is a space-separated string of class names instead of an array.
 * 2. Not all core admin classes are filterable, notably: wp-admin, wp-core-ui,
 *    and no-js cannot be removed.
 *
 * @since 2.3.0
 *
 * @param string $classes Space-separated list of CSS classes.
 */
$admin_body_classes = apply_filters( 'admin_body_class', '' );
?>
<body class="wp-admin wp-core-ui no-js <?php echo $admin_body_classes . ' ' . $admin_body_class; ?>">
<script type="text/javascript">
	document.body.className = document.body.className.replace('no-js','js');
</script>

<?php
// Make sure the customize body classes are correct as early as possible.
if ( current_user_can( 'customize' ) ) {
	wp_customize_support_script();
}
?>

<div id="wpwrap">
<?php require(ABSPATH . 'wp-admin/menu-header.php'); ?>
...
Фрагмент из: wp-admin/includes/template.php VER 4.9.8
...
/** This action is documented in wp-admin/admin-header.php */
do_action( "admin_head-$hook_suffix" );

/** This action is documented in wp-admin/admin-header.php */
do_action( 'admin_head' );

$admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_user_locale() ) ) );

if ( is_rtl() )
	$admin_body_class .= ' rtl';

?>
</head>
<?php
/** This filter is documented in wp-admin/admin-header.php */
$admin_body_classes = apply_filters( 'admin_body_class', '' );
?>
<body<?php
/**
 * @global string $body_id
 */
if ( isset($GLOBALS['body_id']) ) echo ' id="' . $GLOBALS['body_id'] . '"'; ?> class="wp-admin wp-core-ui no-js iframe <?php echo $admin_body_classes . ' ' . $admin_body_class; ?>">
<script type="text/javascript">
(function(){
var c = document.body.className;
c = c.replace(/no-js/, 'js');
document.body.className = c;
})();
</script>
<?php
}
...
campusboy 2946youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться