it-blog.club
DISQUS и количество комментариев

DISQUS и количество комментариев

Если вы пользуетесь сервисом Disqus и вам необходимо произвести вывод комментариев на в каком либо отдельном месте на странице, то можно воспользоваться тем методом, который описан на официальном сайте. НО! Я кое-что заметил в ходе своей работы. А именно то, что дискусс не работает исправно при наличии GET параметров в урле.

И так, для начала воспользуемся кодом из документации, для вывода количества комментариев:

html:


<a href="http://test.ru/#disqus_thread">Link</a>

Где http://test.ru/ - Адрес нужной страницы, ну или например https://test.ru/index.php

Разумеется прописывать каждый урл в вёрстке для каждой статьи не целесообразно по этой причине программисты как правило выводят их различными программными способами. Вот как раз, зачастую, из-за многих способов и подставляются дополнительно GET параметры.

JS:


<script id="dsq-count-scr" src="//EXAMPLE.disqus.com/count.js" async></script>

Вроде, если на странице у вас имеется блок с id disqus_thread и там выводится сам плагин дискусса, то всё должно отрабатывать. Но! Стоит зайти на страницу http://test.ru/?qq=ww и сразу количество комментариев стает равно нулю или слово Links не будет заменено вовсе.

Как данную проблему решил я.

Я просто в теге <a></a> построил урл без гет параметров воспользуясь массивом $_SERVER.

Что нам потребуется из данного массива:

  1. $_SERVER['REQUEST_SCHEME'] - он вернёт нам протокол http или https. Прямо записывать http я не рекомендую, потому что если вы перейдёте на https, то придётся все менять в ручную. Так что пусть за нас это автоматически сделает сам сервер.
  2. $_SERVER['SERVER_NAME'] - это ваш домен, например в будущем вы поменяет домен, ну или произойдёт ещё какая либо ситуация, то сервер сам будет выводить нужный, актуальный домен. Например: test.ru
  3. $_SERVER['REDIRECT_URL'] - в котором находится наш урл БЕЗ GET параметров.

И того мы будем иметь следующий тег <a></a> для вывода количества комментариев:


<a href="<?=$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['SERVER_NAME'].$_SERVER['REDIRECT_URL']?>#disqus_thread">Links</a>

И того, если мы зайдём на страницу http://test.ru/news-name/?user=name

То в тег <a> будет прописал следующий адрес: http://test.ru/news-name/#disqus_thread

Который правильно отработает и слово Links будет заменено на количество комментариев с этой странице.

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


it-blog.club 1072
Автор: Ярослав Хмель


Если Вам понравилась статья, то можете поддержать блог переведя N сумму на кофе авторам или оплату хостинга!
В любом случае спасибо! А так же не забывайте про группу в ВК
ПОИСК ПО САЙТУ
Поддержать