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;
.
get_comment_class()
(дуже повільно) | 50000 разів – 2.64 сек
(швидко) |
PHP 7.0.5, WP 4.4.2
Хуків немає.
Повертає
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 as accept a WP_Comment object. |
Код comment_class() comment class WP 6.0.2
function comment_class( $css_class = '', $comment = null, $post_id = 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_id ) ) . '"'; if ($display) { echo $css_class; } else { return $css_class; } }