Получаем предопределённый набор CSS-классов для комментария в виде массива.
Каждый CSS-класс будет автоматически очищен функцией esc_attr().
get_comment_class( $class = '', $comment_id = null, $post_id = null )
CSS-класс | Описание |
---|---|
comment | Название типа комментария. |
byuser | Если комментарий оставлен зарегистрированным пользователем. |
comment-author-{логин} | Тоже для комментариев, оставленных пользователями. О том, как скрыть логин отсюда, рассказывал тут. |
bypostauthor | Если это комментарий автора поста, к которому оставлен комментарий. |
odd и alt | Если комментарий – чётный по списку. |
even | Если комментарий – нечётный по списку. |
thread-odd и thread-alt | Если родительский комментарий (ветка) – чётный по списку. |
thread-even | Если родительский комментарий (ветка) – нечётный по списку. |
depth-{уровень вложенности} | Уровень вложенности комментария. |
В качестве примере давайте попробуем получить CSS-классы стандартного комментария в WordPress.
$css_classes = get_comment_class( 'true-class-1 true-class-2', 1 ); print_r( $css_classes ); /* Array ( [0] => comment [1] => even [2] => thread-even [3] => depth-1 [4] => true-class-1 [5] => true-class-2 ) */ // можем кстати объединить их в строку и вывести echo join( ' ', $css_classes ); // comment even thread-even depth-1 true-class-1 true-class-2
В реальности эта функция не так часто используется, гораздо чаще мы встречаем comment_class()
, которая уже сразу же выводит эти CSS-классы в шаблоне темы.
При помощи этого хука мы можем например автоматически добавить, или удалить какой-то определённый CSS-класс, и сделать это, даже без изменений в файлах темы.
Например написать плагин, который будет добавлять класс true-class к комментариям и удалять класс, содержащий логин пользователя:
/* * Plugin name: Плагин, меняющий CSS-классы комментов * Author: Миша Рудрастых * Version: 1.0 */ add_filter( 'comment_class', 'true_change_css_classes_in_comment', 25, 5 ); function true_change_css_classes_in_comment( $classes, $class, $comment->comment_ID, $comment, $post_id ) { // удаляем классы foreach( $classes as $key => $class ) { if( strstr( $class, "comment-author-" ) ) { unset( $classes[$key] ); } } // добавляем класс $classes[] = 'true-class'; // возвращаем результат return $classes; }
Не знаете, что делать с этим кодом?
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.