get_comment_class() WP 2.7.0

Отримує CSS класи у вигляді масиву для тега DIV, який обертається кожен коментар в циклі.

Докладніше дивіться в comment_class() .

Основа для:
comment_class()
1 раз – 0.001342 сек
(дуже повільно) | 50000 разів – 2.83 сек
(швидко) |
PHP 7.0.5, WP 4.4.2

Хуки з функції
get_comment_class($class, $comment_id, $post_id);
$class
(рядок/масив)
Один або більше класів, які потрібно додати до списку.


За замовчуванням: ”
$comment_id
(число/WP_Comment)
ID або об’єкт коментаря.


Типово: null (поточний коментар)
$post_id
(число/WP_Post)
ID або об’єкт запису (поста).


Типово: null (поточний пост)

Приклади

0

#1 Отримаємо css класи коментаря у вигляді масиву

$arr = get_comment_class( 'myclass', 123, 2); print_r($arr); /* Array ( [0] => comment [1] => byuser [2] => comment-author-kama [3] => even [4] => thread-even [5] => depth-1 [6] => myclass ) */ echo implode('', $arr); // виведе: comment byuser comment-author-kama even thread-even depth-1 myclass

нотатки

  • Global. int. $comment_alt
  • Global. int. $comment_depth
  • Global. int. $comment_thread_alt

список змін

З версії 2.7.0Введено.
З версії 4.4.0Added ability for $comment_id для того, щоб accept a WP_Comment object.

Код get_comment_class() WP 6.0.2

function get_comment_class( $css_class = '', $comment_id = null, $post_id = null ) { Global $comment_alt, $comment_depth, $comment_thread_alt; $classes = array(); $ comment = get_comment ($ comment_id); if ( ! $comment ) { return $classes; } // Get the comment type (comment, trackback). $classes[] = ( empty( $comment->comment_type ) ) ? 'comment' : $comment->comment_type; // Add classes for comment authors що є registered users. $user = $comment->user_id ? get_userdata( $comment->user_id ) : false; if ($user) { $classes[] = 'byuser'; $classes[] = 'comment-author-' . sanitize_html_class( $user->user_nicename, $comment->user_id ); // Для повідомлень авторів, які є авторами пісні. $post = get_post($post_id); if ($post) { if ( $comment->user_id === $post->post_author ) { $classes[] = 'bypostauthor'; } } } if ( empty( $comment_alt ) ) { $ comment_alt = 0; } if ( empty( $comment_depth ) ) { $ comment_depth = 1; } if ( empty( $comment_thread_alt ) ) { $ comment_thread_alt = 0; } if ( $comment_alt % 2 ) { $classes[] = 'odd'; $classes[] = 'alt'; } else { $classes[] = 'even'; } $comment_alt++; // Alt for top-level comments. if ( 1 == $comment_depth ) { if ( $comment_thread_alt % 2 ) { $classes[] = 'thread-odd'; $classes[] = 'thread-alt'; } else { $classes[] = 'thread-even'; } $comment_thread_alt++; } $classes[] = "depth-$comment_depth"; if ( ! empty( $css_class ) ) { if ( ! is_array( $css_class ) ) { $css_class = preg_split( '#s+#', $css_class ); } $classes = array_merge( $classes, $css_class ); } $classes = array_map( 'esc_attr', $classes ); /** * Filters returned CSS classes для current comment. * * @ Since 2.7.0 * * @param string[] $classes An array of comment classes. * @param string[] $css_class На array of additional classes added to the list. * @param string $comment_id Коментарі ID як numeric string. * @param WP_Comment $comment The comment object. * @param int|WP_Post $post_id Поштовий ID або WP_Post об'єкт. */ return apply_filters( 'comment_class', $classes, $css_class, $comment->comment_ID, $comment, $post_id ); }

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

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