Новости
Статьи
Body_class() - выводит классы для body страницы
Опубликовано: 01.09.2018
Далеко ходить не буду и приведу пример прямо с моего сайта — если вы перейдёте на страницу Блог или в какую-нибудь категорию блога, вы увидите сайдбар, а если перейдёте в пост, то там его уже не будет. Пример довольно примитивный, но вся суть заключается в том, что при помощи этой функции к разным страницам сайта вы сможете применить разные стили CSS.
Практически для каждой страницы функция выведет уникальный набор CSS-классов.
Также вы сможете применить разные стили для залогиненных и незалогиненных пользователей, порой это может быть очень удобно.
body_class ( $class = '' ) |
Простой пример:
<body <?php body_class ( 'myclass yourclass' ) ; ?> > |
То есть функция выводит HTML-атрибут класс и его содержимое, например: class="page page-id-2 page-parent page-template-default logged-in myclass yourclass". Если вам не нужно всё это так выводить, используйте get_body_class() , которая возвращает те же самые классы в виде массива. Кстати говоря, body_class() как раз-таки и работает на её основе.
Список присваиваемых классов
Для присвоения классов функция в основном использует условные теги, в следующей таблице будут показаны соответствия между условными тегами и присваиваемыми классами. Подробное описание тега вы можете посмотреть, кликнув по его названию.
is_rtl() | rtl |
is_front_page() | home |
is_home() | blog |
is_search() | Есть результаты поиска: search search-results. Ничего не найдено: search search-no-results. |
is_attachment() | attachment |
is_404() | error404 |
is_single() | single postid-{ID поста} Страница записи: single-post Страница типа поста: single-{тип поста} Форматы постов (если поддерживаются): Формат присвоен: single-format-{формат} Не присвоен: single-format-standard Страницы вложений: attachment single-attachment attachmentid-{ID} attachment-mime-type |
is_archive() | archive Архивы по дате: date Архив типа постов: post-type-archive post-type-archive-{тип поста} Архив постов автора: archive author author-{имя пользователя} Рубрики: archive category category-{ярлык категории} Метки: archive tag tag-{ярлык метки} Таксономии: tax-{таксономии} term-{ярлык элемента} term-{ID} Архивы форматов постов: tax-post_format term-post-format-{формат} term-{ID} |
is_page() | page page-id-{ID страницы} Родительская страница: page-parent Дочерняя страница: page-child parent-pageid-{ID} Для шаблонов страниц : page-template page-template-{директория}{имя файла}-php, если шаблон не присвоен page-template-default. |
is_user_logged_in() | logged-in |
is_admin_bar_showing() | admin-bar no-customize-support |
Если используется произвольный фон . | custom-background |
is_paged() | paged paged-{номер страницы} Записи: single-paged-{номер страницы} Страницы: page-paged-{номер страницы} Рубрики: category-paged-{номер страницы} Метки: tag-paged-{номер страницы} Архивы по дате: date-paged-{номер страницы} Архивы по автору: author-paged-{номер страницы} Результаты поиска: search-paged-{номер страницы} Архивы произвольного типа постов: post-type-paged-{номер страницы} |
Фильтр body_class
При помощи этого фильтра вы можете подловить итоговый массив с классами и сделать в нем некоторые изменения.
return apply_filters ( 'body_class' , $classes , $class ) ; |
В качестве примера давайте добавим еще один класс к общему списку, используя фильтр:
function true_body_class ( $classes ) { $classes [ ] = 'true-class' ; return $classes ; } add_filter ( 'body_class' ,'true_body_class' ) ; |