Body_class() - Виводить css класи, що відносяться до поточної сторінки
Виводить css класи, що стосуються поточної сторінки. Призначений для використання у тезі.
У темах WordPress можна використовувати Тег Шаблона body_class() , який може стати в нагоді розробникам тим, щоб ефективніше використовувати CSS селектори. Функція body_class() дописує до тега body різні класи, залежно від того, на якій сторінці знаходиться відвідувач, залогінений він чи ні і т.д. (наприклад, class="home logged-in").
Щоб додати додаткові класи, використовуйте параметр $class або фільтр body_class (див. приклади):
Повертає
Виводить на екран список css класів.
Використання
Список класів, що виводяться body_class
Функція може виводити наступний список класів (аргумент class може містити як одне, так і кілька значень цього списку):
- rtl
- home
- blog
- archive
- date
- search
- paged
- attachment
- error404
- single postid-(id)
- page-id-(page_id)
- attachmentid-(id)
- attachment-(mime-тип)
- author
- author-(user_nicename)
- category
- category-(slug)
- tag
- tag-(slug)
- page-parent
- page-child parent-pageid-(id)
- page-template page-template-(назва файлу шаблону)
- search-results
- search-no-results
- logged-in
- paged-(номер сторінки)
- single-paged-(номер сторінки)
- page-paged-(номер сторінки)
- category-paged-(номер сторінки)
- tag-paged-(номер сторінки)
- date-paged-(номер сторінки)
- author-paged-(номер сторінки)
- search-paged-(номер сторінки)
- tax-(назва таксономії) (з версії 3.1)
- term-(назва терміна) (з версії 3.1)
- admin-bar (з версії 3.1)
Де які класи виводяться
Для виведення класів застосовуються умовні теги. Нижче залежність класу, що додається до списку, від спрацьовування умовного тега:
- Є знайдено: search-results .
- Якщо не знайдено: search-no-results .
is_single() - single postid-(ID поста)
- Якщо пост: single-post
- Якщо довільний тип посту: single-(тип посту)
- Якщо підтримуються формати постів: single-format- або single-format-standard
- Якщо вкладення (прикріплені файли): attachment single-attachment attachmentid- attachment-mime-type
- Батьківська сторінка: page-parent
- Дочірня сторінка: page-child parent-pageid-
- Шаблон сторінки:
- Шаблон вказано: page-template page-template - php
- Шаблон не вказано: page-template-default
- За датою: date
- Тип посту: post-type-archive post-type-archive-
- Автор: author author-
- Рубрики: category category-
- Теги: tag tag-
- Таксономія: tax-term-term-
- Архів формату постів: tax-post_format term-post-format- term-
Якщо є фон, що налаштовується
- custom-background Робиться така перевірка:
Приклад, що показує, як застосовується функція:
В результаті в HTML коді ми отримаємо наступне:
А в сss описуватися це буде так:
#2. Додамо свій, довільний клас:
#3. Додавання класів через фільтр body_class
Класи можна додати із застосуванням умов.
Додамо клас тільки для постійних сторінок - is_page(). Для цього скористаємося фільтром body_class. Кодможна вставити у файл теми function.php :
Це лише демонстрація: для постійних сторінок уже є унікальний клас.
Приклад не дуже вдалий, тому що вантажний, для такої дрібниці як додати клас. Цей приклад більше підходить для демонстрації можливостей.
#3.2. Додамо ім'я батьківської сторінки до класів body
Цей приклад додає ярлик батьківської сторінки до класів body, коли ми знаходимося на дочірній сторінці:
#4. Додамо клас тільки, коли показується сайдбар
У прикладі 3 було показано, як додавати додаткові CSS класи через фільтр body_class. Нижче приклад демонструє, як додати новий клас тільки коли показується сайдбар. Цей код потрібно вставити до файлу теми functions.php:
Приклад взято із кодексу. На мій погляд не дуже вдале рішення. Але якщо комусь дуже треба, то може стати в нагоді, мабуть.