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