comment_class()
Выводит CSS классы для помощи в оформлении комментариев.
Этот Тег шаблона преимущественно предназначен для авторов шаблонов.
Функция выводит строку: class="классы", где вместо "классы" могут быть значения: comment, even (или odd), thread-even, depth-1 и т.д., в зависимости от того, какой комментарий отображается в текущий момент. Это позволяет легко стилизовать комментарии по-разному.
Обычно функция используется так:
<li <?php comment_class() ?> id="li-comment-<?php comment_ID() ?>">
При каких условиях применяются те или иные классы:
-
comment_type― для обычных комментариев добавляет классcomment. Для всех остальных типов в качестве класса добавляется тип комментарияcomment_type. -
byuser comment-author-USER_NICENAME― если комментарий был сделан зарегистрированным пользователем, то добавляется классbyuserиcomment-author-USER_NICENAMEочищается (т.е. удаляются пробелы). -
bypostauthor― если комментарий написан автором поста, то добавляется классbypostauthor. -
even/alt odd― если номер комментария четный, добавляется классeven. В противном случае добавляется классaltиodd. -
depth-1― Всегда добавляется классdepth-COMMENT_DEPTH. thread-even|thread-odd― Если глубина комментария верхнего уровня (1), то добавляетсяthread-evenилиthread-alt thread-oddв зависимости от того, четный или нечетный комментарий.
Эта функция использует глобальные переменные, которые можно изменить заранее, чтобы воздействовать на результат функции:
$comment_alt $comment_depth $comment_thread_alt
Например, можно принудительно отменить alt класс у первого комментария (будет выведен класс even): $comment_alt=false;.
Хуков нет.
Возвращает
null|Строку. Классы коммента при echo = false. Ничего при echo = true.
Использование
<li <?php comment_class( $class, $comment, $post_id, $echo ); ?>>
- $class(строка)
- Свой, произвольный класс, который нужно добавить к остальным классам.
По умолчанию: '' - $comment(число/объект)
- ID или объект комментария для которого нужно вывести классы.
По умолчанию: null - $post_id(число/объект)
- ID или объект поста, с которым связан комментарий, для которого нужно вывести классы.
По умолчанию: null - $echo(логический)
- Выводить результат на экран (true) или возвращать для обработки (false).
По умолчанию: true
Примеры
#1 Предположим что функция вызывается для чётного комментария верхнего уровня:
<?php comment_class(); ?>
Выведет: class="comment even thread-even".
В реальности, функция используется внутри HTML тега (контейнера комментария):
<li <?php comment_class( $class, $comment, $post_id, $echo ); ?> id="li-comment-<?php comment_ID() ?>">
#2 Добавим свой класс "special" к остальным:
<?php comment_class('special'); ?>
Выведет: class="comment even thread-even special".
Список изменений
| С версии 2.7.0 | Введена. |
| С версии 4.4.0 | Added the ability for $comment to also accept a WP_Comment object. |
Код comment_class() comment class WP 6.9.1
function comment_class( $css_class = '', $comment = null, $post = null, $display = true ) {
// Separates classes with a single space, collates classes for comment DIV.
$css_class = 'class="' . implode( ' ', get_comment_class( $css_class, $comment, $post ) ) . '"';
if ( $display ) {
echo $css_class;
} else {
return $css_class;
}
}