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. |