comment_class() WP 2.7.0

Виводить 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()
1 раз – 0.001315 сек
(дуже повільно) | 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

Приклади

0

#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() ?>">
0

#2 Додамо свій клас “special” до решти:

<?php comment_class('special'); ?>

Виведе: class="comment even thread-even special".

список змін

З версії 2.7.0Введено.
З версії 4.4.0Added the ability for $comment to as accept a WP_Comment object.

Код 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;
	}
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *