WordPress как на ладони
rgbcode is looking for WordPress developers. Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

comment_reply_link()WP 2.7.0

Выводит ссылку <a>, которая позволяет отвечать на комментарий. Тег используется в цикле комментариев, для каждого комментария.

Если подключен JavaScript comment-reply.js, то этот Тег шаблона будет передвигать форму комментирования под комментарий на который пользователь решил ответить.

Функция предназначена для использования внутри цикла комментариев.

Работает на основе: get_comment_reply_link()
1 раз — 0.001392 сек (очень медленно) | 50000 раз — 18.71 сек (медленно)

Хуков нет.

Возвращает

null. Выводит на экран код ссылки.

Использование

<?php comment_reply_link( $args, $comment, $post ); ?>
$args(массив)
Различные параметры, влияющие на отображение ссылки.
По умолчанию: предустановки
$comment(число)
ID комментария на который будем отвечать.
По умолчанию: null
$post(число)
ID поста для которого показывается ссылка.
По умолчанию: null

Аргументы параметра $args

add_below(строка)
Название префикса для контейнера комментария. По умолчанию comment, означает что форма будет передвигаться под контейнер с атрибутом id="comment-23" (23 ID комментария на который отвечаем).
По умолчанию: 'comment'
respond_id(строка)
Значение атрибута id контейнера формы комментирования. Т.е. если указано respond, то по нажатию на ссылку блок с id="respond" будет передвигаться (это блок формы комментирования).
По умолчанию: 'respond'
reply_text(строка)
Текст ссылки.
По умолчанию: __('Reply')
login_text(строка)
Текст ссылки, который показывается когда для того чтобы оставить комментарий нужно зарегистрироваться.
По умолчанию: __('Log in to Reply')
depth(число)
Глубина комментариев для которых ссылка будет показана. Для древовидных комментариев. Если указать, например 3, то для комментария с глубиной вложенности 4 ссылка уже не будет отображаться.
По умолчанию: 0
before(строка)
Текст или html, которые нужно добавить перед ссылкой.
after(строка)
Текст или html, которые нужно добавить после ссылкой.
По умолчанию: array()

Примеры

1

#1 Подключаем comment-reply.js только где он нужен:

Второй пример немного упрощенный. Этот пример также подключает скрипт, но прежде чем его подключить проверяет действительно ли он нужен. В условии if проверяется: страница записи ли это (is_singular), и открыты ли комментарии для этой страницы (comments_open) и включена ли опция древовидных комментариев (get_option). Если все эти условия не соблюдаются, то логично, что этот скрипт не нужен, поэтому он не будет подключен:

function enqueue_comment_reply() {
	if( is_singular() && comments_open() && (get_option('thread_comments') == 1) ) 
		wp_enqueue_script('comment-reply');
}
add_action( 'wp_enqueue_scripts', 'enqueue_comment_reply' );
0

#2 Ссылка для ответа на комментарий

Выведем ссылку для ответа на комментарий максимального уровня вложенности - 5, и изменим текст ссылки на "ответить на комментарий":

<?php comment_reply_link( [ 'reply_text' => "ответить на комментарий", 'depth' => 5 ] ); ?>

Выведет подобную ссылку:

<a rel="nofollow" class="comment-reply-link" href="#comment-5296" data-commentid="5296" data-postid="1222" data-belowelement="comment-5296" data-respondelement="respond" aria-label="Комментарий к записи Цифровой">Ответить</a>
0

#3 Подключаем comment-reply.js

По клике на ссылку, которую выводит comment_reply_link() пользователя должно перекинуть к форме ответа на комментарий. Но если подключить скрипт comment-reply.js, то при клике на эту ссылку форма ответа на комментарий должна сама подвинуться под текущий комментарий.

Чтобы подключить скрипт comment-reply.js, который находится в файлах движка, нужно добавить такую строку в header.php:

if( is_singular() ) wp_enqueue_script('comment-reply');

Или лучше добавить в funcions.php такой код:

function enqueue_comment_reply() {
	if( is_singular() )
		wp_enqueue_script('comment-reply');
}
add_action( 'wp_enqueue_scripts', 'enqueue_comment_reply' );
0

#4 Замена класса 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;
}

Заметки

Список изменений

С версии 2.7.0 Введена.

Код comment_reply_link() WP 6.4.3

function comment_reply_link( $args = array(), $comment = null, $post = null ) {
	echo get_comment_reply_link( $args, $comment, $post );
}
32 комментария
Полезные 3Вопросы 1 Все
    Войти