body_class
Позволяет изменить список CSS классов, присваиваемых тегу <body>
.
Этот хук срабатывает во время вызова одноименной функции body_class(), которую нужно вызывать внутри тега <body <?php body_class( $class ) ?>>
Использование
add_filter( 'body_class', 'wp_kama_body_class_filter', 10, 2 ); /** * Function for `body_class` filter-hook. * * @param string[] $classes An array of body class names. * @param string[] $css_class An array of additional class names added to the body. * * @return string[] */ function wp_kama_body_class_filter( $classes, $css_class ){ // filter... return $classes; }
- $classes(строка[])
- Массив CSS классов, которые будут добавлены к тегу
body
. - $class(строка[])
- Массив дополнительных CSS классов, которые были переданы в качестве параметра в функцию get_body_class( $class ) или body_class( $class ).
Примеры
#1 Замена одного класса другим
Живой пример, когда блокировщик рекламы из-за класса single-ads
у body
накладывал атрибут display: none !important; на страницах записей типа ads
. Заменим этот "плохой" класс, чтобы блокировщик не реагировал.
add_filter( 'body_class', 'remove_body_ads_class' ); function remove_body_ads_class( $classes ) { foreach ( $classes as $index => $class ) { if ( 'single-ads' === $class ) { $classes[ $index ] = 'single-money'; } } return $classes; }
Список изменений
С версии 2.8.0 | Введена. |
Где вызывается хук
body_class
wp-includes/post-template.php 859
$classes = apply_filters( 'body_class', $classes, $css_class );