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
.
Хуки из функции
Возвращает
Строку[]
. Массив в котором элементы это название классов.
Использование
get_post_class( $class, $post_id );
- $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 were added. |