Функция COMMENT_REPLY_LINK() в WordPress
Функция COMMENT_REPLY_LINK() отвечает за отображение ссылки для ответа на комментарий.
Описание
Функция использует get_comment_reply_link() для генерации нужной ссылки.
Параметры времени выполнения:
- 1 раз — 0.001392 секунды (очень медленно)
- 50000 раз — 18.71 секунды (медленно)
Возврат
Функция возвращает null, то есть ничего не выводит.
Использование
Вызов функции осуществляется следующим образом:
comment_reply_link( $args, $comment, $post );
Параметры:
$args(array): Массив с параметрами, которые позволяют переопределить настройки по умолчанию. По умолчанию — пустой массив.$comment(int|WP_Comment): Комментарий, на который нужно ответить. По умолчанию — текущий комментарий.$post(int|WP_Post): ID поста или объект WP_Post, на котором будет отображаться комментарий. По умолчанию — текущий пост.
Примеры использования
Пример 1: Ссылка для ответа на комментарий
Давайте создадим ссылку для ответа на комментарий с максимальным уровнем вложенности 5 и изменим текст ссылки на "ответить на комментарий":
"ответить на комментарий", 'depth' => 5 ] ); ?>
Вывод будет следующим:
Пример 2: Подключение скрипта comment-reply.js
При нажатии на ссылку, созданную с помощью comment_reply_link(), пользователь будет перенаправлен к форме для ответа на комментарий. Чтобы сделать это более удобно, нужно подключить скрипт comment-reply.js. Для этого добавьте следующий код в файл header.php:
if( is_singular() ){
wp_enqueue_script('comment-reply');
}
Либо лучше добавить этот код в functions.php:
add_action( 'wp_enqueue_scripts', 'enqueue_comment_reply' );
function enqueue_comment_reply() {
if( is_singular() ){
wp_enqueue_script('comment-reply');
}
}
Пример 3: Подключение comment-reply.js только при необходимости
Можно также проверить, действительно ли требуется подключать этот скрипт. Это можно сделать с помощью условий. Мы проверяем, находится ли пользователь на странице поста (используя is_singular()), открыты ли комментарии для этой страницы (comments_open()) и включена ли опция вложенных комментариев (get_option()). Если что-то из этого не выполнено, скрипт не будет подключен:
add_action( 'wp_enqueue_scripts', 'enqueue_comment_reply' );
function enqueue_comment_reply() {
if( is_singular() && comments_open() && get_option('thread_comments') == 1 ){
wp_enqueue_script('comment-reply');
}
}
Пример 4: Изменение CSS класса у ссылки ответа с помощью хуков
Чтобы изменить класс CSS у ссылки ответа, можно использовать хук:
add_filter( 'comment_reply_link', 'wpdocs_comment_reply_link_class' );
function wpdocs_comment_reply_link_class( $class ) {
$class = str_replace( "class='comment-reply-link", "class='comment-reply-link your-class-name", $class );
return $class;
}
Замечания
- Информация о функции
get_comment_reply_link()доступна в документации.
Изменения
В версии 2.7.0 была введена данная функция.
Код функции
Функция comment_reply_link расположена в файле wp-includes/comment-template.php:
function comment_reply_link( $args = array(), $comment = null, $post = null ) {
echo get_comment_reply_link( $args, $comment, $post );
}
Связанные функции
Расширьте свои знания о комментариях, изучив следующие функции:
comment_author()comment_author_email()comment_date()wp_list_comments()
Эти функции помогут вам лучше понять, как работать с комментариями в WordPress и как их настраивать.