get_post_class()
Отримує css класи у вигляді масиву, які потрібно використовувати в записі для виведення в html тезі.
Підсумковий масив класів пропускається через фільтр post_class
, використовуйте його, коли потрібно змінити класи, що виводяться в залежності від різних умов.
Щоб одразу вивести класи на екран у вигляді рядка, використовуйте post_class()
Де та які класи додаються
hentry
,post-{$post_id}
,type-{$post_type}
,status-{$post_status}
,{$post_type}
— виводяться всім записів. Частини у дужках замінюються на відповідну змінну поточного запису;
{$post_type} НЕ виводиться в адмінці…sticky
– якщо це приліплений піст, виводиться лише на сторінці is_home() . В адмінці виводитьсяstatus-sticky
;has-post-thumbnail
— якщо запис має мініатюру;format-{формат записи}
— якщо активовано підтримку форматів. Якщо формат не вказано, то виведеformat-standart
.post-password-required
– Для записів захищених паролем.{$taxonomy}-{$slug}
– Якщо запис належить таксономії. $taxonomy заміниться назвою такси, а $slug назвою терміна (елемента таксономії). Наприклад:category-blog
;
Винятком тут є таксономіяpost_tag
для неї префікс будеtag-
, а неpost_tag-
. Наприклад:tag-novosti
.
post_class()
(дуже повільно) | 50000 разів – 10.72 сек
(повільно) |
PHP 7.0.2, WP 4.4.1
Хуки з функції
-
$class
(рядок/масив) -
Класи, які потрібно додати до списку.
За замовчуванням: ” -
$post_id
(число/WP_Post) -
ID або об’єкт запису, класи якого потрібно отримати.
Типово: null
Приклади
#1 Демонстрація висновку
$classes = get_post_class(); print_r($classes); /* Array ( [0] => post-219 [1] => post [2] => type-post [3] => status-publish [4] => format-standard [5] => has-post-thumbnail [6] => hentry [7] => category-blog [8] => tag-novosti ) */
#2 Виведемо всі класи у вигляді рядка
Цей код можна використовувати як заміну для post_class() :
echo '<div class="' . join(' ', get_post_class() ) . '">';
#3 Додамо свій клас
$classes = get_post_class('foo bar'); // або можна масивом $classes = get_post_class( array('foo', 'bar') ); /* Обидва приклади додадуть до загального масиву Array ( [0] => foo [1] => bar [2] => post-19 ) */
#4 Видалимо непотрібний клас
Допустимо нам потрібно позбутися класу hentry
, тоді перед викликом get_post_class() або post_class() використовуйте такий фільтр:
add_filter( 'post_class', 'remove_hentry'); function remove_hentry( $classes ) { $unset = array('hentry'); // можна додати ще return array_diff($classes, $unset); }
нотатки
- З версії 3.1 введено підтримку форматів постів.
- З версії 4.2 введено підтримку таксономій.
список змін
З версії 2.7.0 | Введено. |
З версії 4.2.0 | Custom taxonomy class names були added. |