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 866
$classes = apply_filters( 'body_class', $classes, $css_class );