Функція body_class() у WordPress

Використання body_class()

Більшість тем для WordPress вже використовують функцію body_class() , тому в шаблонах теми міняти нічого не доведеться. Якщо ви розробляєте власну тему WordPress, то функцію body_class() необхідно використовувати всередині тега :

Врахуйте, що використання цієї функції обов'язково для всіх тем в офіційній директорії WordPress.org. Також варто зазначити, що функція body_class() може приймати один аргумент, куди ви можете передати список додаткових класів, наприклад:

Усередині самої функції є однойменний фільтр body_class, до якого легко підключитися та змінити список класів з будь-якого плагіна.

На даний момент функція body_class() підтримує понад 50 типів класів. У цьому розділі ми розглянемо найцікавіші та найпопулярніші. Повний перелік та логіку вибору класів ви можете переглянути у файлі ядра wp-includes/post-template.php.

Класи single та page

Класи single і page – одні з найкорисніших. Вони присутні тоді, коли поточна сторінка містить одиночний запис. Клас single використовується для одиночних записів будь-яких типів, крім вкладень та сторінок, а клас page використовується для сторінок.

Наприклад, наступний CSS-код збільшує заголовок на сторінках з одиночним записом або сторінкою:

Клас single-використовується для одиночних записів певного типу, і може бути корисним для тих, хто використовує довільні типи записів.

Класи postid-* та page-id-*

За допомогою даних класів можна визначити конкретний запис або сторінку, де знаходиться користувач. Сторінка визначається за її ідентифікатором, який можна підглянути на панелі адміністрування.

Наприклад на якихось важливих розділах сайту (реєстрація, формазамовлення і т.д.) ми можемо приховати бічну колонку, щоб не відволікати відвідувача:

Класи archive, home та blog

Дані класи дозволяють визначити, чи є поточна сторінка архівом, головною статичною сторінкою сайту або головною сторінкою зі списком записів.

У випадку з архівами є такі класи:

Класи logged-in та admin-bar

Клас logged-in використовується тоді, коли відвідувач виконав вхід. Клас admin-bar з'являється, коли відображається верхня панель WordPress. Змінити колір фону віджету передплати для користувачів, що увійшли, можна наступним чином:

До речі, якщо ви шукаєте спосіб приховати верхню панель, не робіть цього за допомогою CSS. Для верхньої панелі є спеціальний фільтр, за допомогою якого можна повністю її відключити для всіх через плагін:

Фільтр body_class

Як ми вже згадали, функції body_class() мають спеціальний фільтр, який дозволяє плагінам WordPress змінювати список використовуваних класів.

Наприклад, щоб не використовувати клас logged-in незалежно від того, чи виконав користувач вхід, ми можемо використовувати наступний код у нашому плагіні:

Ми можемо також додати новий клас до списку, наприклад, довільне поле поточного одиночного запису:

Якщо ви не впевнені, коли використовується той чи інший клас у body_class() , ви завжди можете подивитися вихідний HTML-код сторінки або скористатися засобами для розробників у Chrome або Firefox.

функція