WordPress как на ладони
wordpress jino

Изменение порядка вывода комментариев, и отмена редиректа на последнюю страницу коментариев, после отправки формы.

Доброго времени суток!

Помогите пожалуйста решить проблему, появилась необходимость изменить порядок вывода комментариев, таким образом, что бы последние написанные комментарии располагались на первой странице, в верху.

В настройках wordpress этого сделать нельзя, последние комментарии отображаются только на последней странице. Путем редактирования файла comments-template.php в папке wp-includes, и изменения значения сортировки(order) в массиве $comment_args на "DESC", удалось добиться нужного результата, но как я понимаю это плохое решение и изменения затрутся с ближайшем обновлении WP.

Подскажите пожалуйста, есть ли возможность сделать это по другому? Пытался сделать тоже самое с помощью функций, в частности get_comments() но ничего не вышло(

Если другой возможности нет, придется оставить этот вариант, но от сюда вытекает другая проблема, по умолчанию, после отправки формы, происходит редирект на последнюю страницу, на которой получается находятся старые комментарии, опять же, можно залезть в системные файлы (wp-comments-post.php), изменить редирект, указав ссылку на нужную страницу... Но как это сделать через файлы темы, не понятно(

Спасибо заранее!!

1
Гость 1.2 года назад
  • 0
    Kama4558

    Изменение порядка сортировки комментариев записи

    С версии WP 4.5 появился фильтр для этого:

    // $comment_args = apply_filters( 'comments_template_query_args', $comment_args );
    add_filter('comments_template_query_args', 'change_comments_template_order');
    function change_comments_template_order( $args ){
    	$args['order'] = 'DESC';
    	return $args;
    }

    Изменение ссылки при редиректе после комментария

    Вариант 1

    Если в форме комментариев указать поле с name=redirect_to то после комментария пользователя перенаправит на указанную в этом поле ссылку...

    <input type="hidden" name="redirect_to" value="ссылка куда перенаправить">

    Вариант 2

    Можно изменить ссылку куда перенаправить после коммента, через фильтр 'get_comment_link':

    // apply_filters( 'get_comment_link', $link, $comment, $args, $cpage );
    add_filter( 'get_comment_link', 'change_redirect_link', 10, 4 );
    function change_redirect_link( $link, $comment, $args, $cpage ){
    	if( false !== strpos($_SERVER['REQUEST_URI'], 'wp-comments-post.php') ){
    		// изменяем номер страницы комментариев
    		$link = str_replace( "comment-page-$cpage", "comment-page-1", $link );
    	}
    
    	return $link;
    }
    Аркадий 1.2 года назад

    Все работает!) Kama, большое тебе, человеческое спасибо!!!

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.