Способ первый: Редактирование темы: передача значения класса Body. Для добавления обычно используют следующую строку:
<body <?php body_class(); ?>>
к которой следует добавить:
<body <?php body_class( 'my-class' ); ?>>
Добавить несколько классов:
<body <?php body_class( array( "class-one", "class-two", "class-three" ) ); ?>>
Пример добавления класса с условием:
<?php if ( is_shop() ) { body_class( 'is-woocommerce-shop' ); } else { body_class(); } ?>Код проверяет, что первая функция возвращает true, если это правда, то класс body is-woocommerce-shop будет добавлен к нему; в противном случае, если это не так, то отображается только класс Body по умолчанию.
Способ второй: добавление класса Body с помощью фильтра.
add_filter( 'body_class','my_body_classes' );
function my_body_classes( $classes ) {
$classes[] = 'class-name';
return $classes;
}Добавление нескольких классов для Body с помощью фильтра:
add_filter( 'body_class','my_body_classes' );
function my_body_classes( $classes ) {
$classes[] = 'class-name';
$classes[] = 'class-name-two';
return $classes;
}Добавление нескольких классов с условием:
add_filter( 'body_class','my_body_classes' );
function my_body_classes( $classes ) {
if ( is_shop() ) {
$classes[] = 'class-name';
$classes[] = 'class-name-two';
}
return $classes;
}Добавление класса Body для шаблона страницы:
add_filter( 'body_class','halfhalf_body_class' );
function halfhalf_body_class( $classes ) {
if ( is_page_template( 'page-halfhalf.php' ) ) {
$classes[] = 'halfhalf-page';
}
return $classes;
}Это добавит класс Body halfhalf-page, если шаблон страницы page-halfhalf.php
Для одиночных записей
//добавление своего класса на нужных страницах start
function wph_add_own_class($classes) {
if (is_single()) {
$classes[] = 'my-class-single';
}
return $classes;
}
add_filter('body_class', 'wph_add_own_class');
//добавление своего класса на нужных страницах endЭто самый простейший пример, который вряд ли вам пригодится (по умолчанию body_class и так уникально маркирует все страницы одиночных записей). Поэтому рассмотрим более продвинутый пример:
//добавление своего класса на нужных страницах start
function wph_add_own_class($classes) {
$temp = get_post_meta(get_the_ID(), 'my_field', true);
if (is_single() and $temp=='true') {
$classes[] = 'my-field-true';
}
return $classes;
}
add_filter('body_class', 'wph_add_own_class');
//добавление своего класса на нужных страницах endВ этом примере класс my-field-true будет добавлен только, если произвольное поле my_field текущей записи равно true. Таким же образом можно "пометить" любую выводимую движком страницу на основе каких-либо своих условий.
Удаление класса Body
add_filter( 'body_class', 'adjust_body_class' );
function adjust_body_class( $classes ) {
foreach ( $classes as $key => $value ) {
if ( $value == 'woocommerce-page' ) unset( $classes[ $key ] );
}
return $classes;
}В этом примере мы перебираем массив имен классов, удаляем имя класса woocommerce-page, если оно существует, а затем возвращаем все классы кроме тех, которые были удалены.
Ещё один способ добавления класса
// Add specific CSS class by filter.
add_filter( 'body_class', function( $classes ) {
return array_merge( $classes, array( 'class-name' ) );
} );