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;
}
}