- Описание функции
- Примеры использования
- Добавление класса к тегу body при использовании body_class()
- Изменение классов body при определенных условиях
- Использование body_class() для стилизации элементов на странице
- Создание уникальных классов для body при разных типах контента
- Вопросы и ответы
- Как добавить дополнительные классы к элементу body?
- Как удалить классы по умолчанию из элемента body?
- Как изменить порядок классов в элементе body?
- Как добавить классы на определенных страницах или шаблонах?
- Как использовать функцию body_class() в пользовательском шаблоне?
- Как добавить классы на основе условий или данных?
- Как добавить классы на основе пользовательских настроек?
- Как использовать функцию body_class() в дочерней теме?
- Связанные элементы
Описание функции
Функция 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: Класс для работы с настройками фонового изображения.