Функция GET_COMMENT_TEXT() в WordPress: синтаксис, примеры использования, хуки

Функция GET_COMMENT_TEXT() │ WP 1.5.0

Функция get_comment_text() позволяет получить текст текущего комментария.

Использование функции

  • Использует: get_comment()
  • Применяется в: comment_text()
  • Время выполнения: 1 раз — 0.000284 сек (быстро) | 50000 раз — 0.58 сек (очень быстро)

Хуки функции

  • get_comment_text

Возврат

Функция возвращает строку, содержащую текст комментария.

Синтаксис

get_comment_text( $comment_id, $args );
  • $comment_id (int|WP_Comment) — идентификатор комментария или объект комментария, для которого нужно получить текст. По умолчанию: текущий комментарий.
  • $args (array) — массив аргументов. По умолчанию: пустой массив.

Примеры использования

Изменение текста конкретных комментариев

С помощью хука get_comment_text можно изменить текст комментария.

/**
 * Для комментариев с ID 723 или 15
 */
add_filter( 'get_comment_text', 'change_org_comment', 10, 2 );

function change_org_comment( $text_content, WP_Comment $com ) {
    if ( ! is_admin() && in_array( $com->comment_ID, [ 723, 15 ] ) ) {
        $text_content = 'Вы только что были удалены!';
    }
    return $text_content;
}

Получение текста комментария

$comm_id = 2021;
$text = get_comment_text( $comm_id );

echo $text;

Заметки

  • Обратите внимание на класс Walker_Comment, который отвечает за отображение комментариев.

Изменения в функции

  • С 1.5.0 — Функция была введена.
  • С 4.4.0 — Теперь $comment_id может принимать также объект WP_Comment.
  • С 5.4.0 — Добавлен префикс "В ответ на %s." для дочерних комментариев в ленте комментариев.

Код функции GET_COMMENT_TEXT()

function get_comment_text( $comment_id = 0, $args = array() ) {
    $comment = get_comment( $comment_id );

    $comment_text = $comment->comment_content;

    if ( is_comment_feed() && $comment->comment_parent ) {
        $parent = get_comment( $comment->comment_parent );
        if ( $parent ) {
            $parent_link = esc_url( get_comment_link( $parent ) );
            $name        = get_comment_author( $parent );

            $comment_text = sprintf(
                // переводы: %s: Ссылка на комментарий.
                ent2ncr( __( 'В ответ на %s.' ) ),
                '' . $name . ''
            ) . "nn" . $comment_text;
        }
    }

    return apply_filters( 'get_comment_text', $comment_text, $comment, $args );
}

Связанные функции

  • cancel_comment_reply_link()
  • comment_author_email_link()
  • comment_form()
  • comment_form_title()
  • get_avatar()
  • И другие функции, связанные с комментариями.

Эта статья поможет вам лучше понять, как использовать функцию get_comment_text() для работы с комментариями в WordPress, а также изменять тексты комментариев под ваши нужды.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *