body_class()

Отображает имена классов для элемента
Функция WordPress
INT 2.8.0
WordPress Icon

Описание функции

Функция body_class() выводит список классов для элемента body на странице WordPress.

Классы добавляются к элементу body в зависимости от контекста страницы и настроек темы. Это позволяет разработчикам стилизовать страницы WordPress с помощью CSS, опираясь на классы, которые автоматически добавляются к элементу body.

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

body_class( string|string[] $css_class = '' )

Функция body_class() принимает один параметр:

  • $css_class (строка или массив) — Пробелами разделенная строка или массив имен классов, которые нужно добавить к списку классов. По умолчанию: пустая строка.
<?php
  // Добавление класса "my-class" к списку классов элемента <body>
  $css_class = 'my-class';
  body_class( $css_class );
  // Добавление классов "class1" и "class2" к списку классов элемента <body>
  $css_classes = array( 'class1', 'class2' );
  body_class( $css_classes );
?>

В данном примере мы добавляем классы «my-class», «class1» и «class2» к списку классов элемента body.

Примеры использования

Добавление класса к тегу body при использовании body_class()


<?php
    // Пример использования body_class() без параметров
    $classes = body_class();
    echo '<body class="' . esc_attr( $classes ) . '">';
?>

В данном примере функция body_class() вызывается без параметров. Она возвращает строку с классами, которые будут добавлены к тегу body. Затем эта строка классов выводится с помощью функции echo и экранируется с помощью функции esc_attr().

Изменение классов body при определенных условиях


<?php
    // Пример использования body_class() с условием
    $classes = body_class();
    
    if ( is_single() ) {
        $classes .= ' single-post';
    }
    
    echo '<body class="' . esc_attr( $classes ) . '">';
?>

В этом примере функция body_class() также вызывается без параметров. Затем проверяется, является ли текущая страница отдельной записью с помощью функции is_single(). Если это так, то к строке классов добавляется класс single-post. Затем строка классов выводится с помощью функции echo и экранируется с помощью функции esc_attr().

Использование body_class() для стилизации элементов на странице


/* Пример использования body_class() для стилизации элементов на странице */
body.page-template-template-about {
    background-color: #f0f0f0;
    color: #333;
}

В данном примере используется класс page-template-template-about, который добавляется к тегу body с помощью функции body_class(). Затем с помощью CSS можно стилизовать элементы на странице, которые имеют этот класс.

Создание уникальных классов для body при разных типах контента


<?php
    // Пример использования body_class() для создания уникальных классов
    $classes = body_class();
    
    if ( is_single() ) {
        $post_id = get_the_ID();
        $post_type = get_post_type( $post_id );
        
        $classes .= ' single-' . $post_type . '-' . $post_id;
    }
    
    echo '<body class="' . esc_attr( $classes ) . '">';
?>

В этом примере функция body_class() вызывается без параметров. Затем проверяется, является ли текущая страница отдельной записью с помощью функции is_single(). Если это так, то получается идентификатор записи с помощью функции get_the_ID() и тип записи с помощью функции get_post_type(). Затем к строке классов добавляется уникальный класс в формате single-{post_type}-{post_id}. Например, для записи с идентификатором 123 и типом «post» будет добавлен класс single-post-123. Затем строка классов выводится с помощью функции echo и экранируется с помощью функции esc_attr().

Вопросы и ответы

Как добавить дополнительные классы к элементу body?

Функция body_class() позволяет добавить дополнительные классы к элементу body на странице вашего сайта. Для этого вам нужно передать строку или массив с именами классов в качестве параметра.


<?php
    $additional_classes = array( 'custom-class', 'another-class' );
    body_class( $additional_classes );
?>

В итоге, на странице будет добавлены классы custom-class и another-class к элементу body.

Как удалить классы по умолчанию из элемента body?

Если вам необходимо удалить классы по умолчанию из элемента body, вы можете передать пустую строку или пустой массив в качестве параметра функции body_class().


<?php
    body_class( '' );
?>

Таким образом, все классы по умолчанию будут удалены из элемента body.

Как изменить порядок классов в элементе body?

Порядок классов в элементе body определяется порядком их добавления. Если вам нужно изменить порядок классов, вам необходимо изменить порядок элементов в передаваемом массиве.


<?php
    $additional_classes = array( 'class-a', 'class-b', 'class-c' );
    body_class( $additional_classes );
?>

В данном примере, классы будут добавлены в следующем порядке: class-a, class-b, class-c.

Как добавить классы на определенных страницах или шаблонах?

Если вам нужно добавить классы только на определенных страницах или шаблонах, вы можете использовать условные конструкции вместе с функцией body_class().


<?php
    if ( is_page( 'about' ) ) {
        body_class( 'about-page' );
    } elseif ( is_single() ) {
        body_class( 'single-post' );
    }
?>

В данном примере, на странице «О нас» будет добавлен класс about-page, а на отдельной записи — класс single-post.

Как использовать функцию body_class() в пользовательском шаблоне?

Функция body_class() используется для вывода списка классов для элемента body на странице WordPress. Это очень полезно для стилизации страницы с помощью CSS.

Чтобы использовать функцию body_class() в пользовательском шаблоне, достаточно вызвать ее внутри тега body следующим образом:

 <body <?php body_class(); ?>>

Как добавить классы на основе условий или данных?

Вы также можете добавить классы на основе условий или данных, используя функцию body_class().

Например, если вы хотите добавить класс «logged-in», если пользователь авторизован, вы можете использовать следующий код:

 <body <?php if ( is_user_logged_in() ) { body_class( 'logged-in' ); } ?>>

Как добавить классы на основе пользовательских настроек?

Если вы хотите добавить классы на основе пользовательских настроек, вы можете использовать функцию body_class() в сочетании с функциями WordPress для получения этих настроек.

Например, если вы хотите добавить класс «dark-mode», если пользователь выбрал темный режим в настройках, вы можете использовать следующий код:

 <body <?php if ( get_theme_mod( 'dark_mode' ) ) { body_class( 'dark-mode' ); } ?>>

Как использовать функцию body_class() в дочерней теме?

Если вы используете дочернюю тему, вы можете использовать функцию body_class() так же, как и в основной теме.

Просто добавьте вызов функции body_class() внутри тега body в файле header.php вашей дочерней темы:

 <body <?php body_class(); ?>>

Функция body_class() является мощным инструментом для добавления классов к элементу body на странице WordPress. Она позволяет легко стилизовать страницу с помощью CSS, основываясь на различных условиях и данных. Используйте эту функцию в своих пользовательских шаблонах и дочерних темах, чтобы создать уникальный дизайн для вашего сайта.

Связанные элементы

  • Функция wp_body_open(): Выводит открывающий тег для элемента body.
  • Функция get_body_class(): Возвращает классы, добавленные к элементу body.
  • Хук body_class: Фильтрует классы, добавляемые к элементу body.
  • Хук admin_body_class: Фильтрует классы, добавляемые к элементу body в административной панели.
  • Хук login_body_class: Фильтрует классы, добавляемые к элементу body на странице входа в систему.
  • Класс WP_Customize_Background_Image_Setting: Класс для работы с настройками фонового изображения.
Обсуждение