Функция get_comment_text() возвращает текст указанного комментария либо текущего комментария в цикле, если аргумент с ID не передан. Это удобный способ программно получить содержимое комментария без вывода его на экран.
get_comment_text( int|WP_Comment $comment_id = null, array $args = array() ): string
get_comment_text() используется для получения текста комментария. Если вы хотите вывести текст напрямую на экран, используйте функцию comment_text().
Эта функция работает на основе get_comment() и возвращает текст комментария в виде строки.
Параметры
$comment_id(int|WP_Comment, необязательный)
ID или объект комментария, текст которого нужно получить. Если параметр не передан, функция попытается получить текст текущего комментария в цикле.
По умолчанию: текущий комментарий в цикле.$args(array, необязательный)
Массив аргументов для настройки возвращаемого значения. Аргументы передаются в хукget_comment_text.
По умолчанию: пустой массивarray().
Аргументы для $args могут изменять поведение функции:
format
Указывает формат текста комментария. Возможные значения:'html'(по умолчанию) или'plain'.short_ping
Отображать ли текст комментария как «пингбек» или «трэктбек». Принимаетtrueилиfalse.avatar_size
Размер аватара, который отображается с текстом комментария (в пикселях).callback
Указывает callback-функцию для кастомного отображения текста комментария.end-callback
Указывает callback-функцию для отображения закрывающих тегов HTML после текста комментария.type
Указывает тип комментария:'comment','pingback', или'trackback'.reply_text
Текст для ссылки «Ответить» в древовидных комментариях. По умолчанию —'Reply'.max_depth
Указывает максимальную глубину древовидных комментариев.echo
Указывает, выводить ли текст комментария сразу (true) или вернуть его как строку (false). По умолчанию —true.
Возвращаемое значение
string
Возвращает строку с текстом комментария.
Пример 1: Получение текста конкретного комментария
В следующем примере мы получаем текст комментария с ID 123:
$text = get_comment_text( 123 );
echo $text;
Пример 2: Изменение текста для определенных комментариев
Используя фильтр get_comment_text, можно изменить текст для комментариев с конкретными ID. Например, давайте изменим текст для комментариев с ID 123и 15:
add_filter( 'get_comment_text', 'wpdocs_change_comment_text', 10, 2 );
function wpdocs_change_comment_text( $text_content, WP_Comment $comment ) {
if ( in_array( $comment->comment_ID, array( 123, 15 ) ) ) {
$text_content = __( 'Этот комментарий был удален!' );
}
return $text_content;
}
Этот код изменит текст комментариев с ID 123и 15 на фразу «Этот комментарий был удален!».
Пример 3: Ограничение вложенности комментариев
Вы можете ограничить глубину комментариев с помощью аргумента max_depth. В следующем примере мы ограничиваем глубину вложенности до 1 уровня:
$args = array( 'max_depth' => 1 ); // ограничиваем глубину комментариев до одного уровня
$parent_comment_text = get_comment_text( $comment->comment_parent, $args );
echo $parent_comment_text;
Этот код получает текст родительского комментария с ограничением глубины до одного уровня.
Хуки
get_comment_text
Этот фильтр позволяет изменить текст комментария перед его выводом или получением.
Заключение
Функция get_comment_text() — это мощный инструмент для работы с комментариями в WordPress. Она позволяет гибко получать и изменять текст комментария, а также легко кастомизировать вывод с помощью фильтров и аргументов.