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:

Приклад взято із кодексу. На мій погляд не дуже вдале рішення. Але якщо комусь дуже треба, то може стати в нагоді, мабуть.