it-blog.club
DISQUS не показывает комментарии

DISQUS не показывает комментарии

Я уже касался темы DISQUS в этой статье, в которой я рассказал о решении проблемы с выводом количества комментариев при наличии GET параметров в адресной строке.

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

Для начала посмотрите в адресную строку, потому что сейчас я расскажу о решении только одной проблемы.

Если в урле имеются GET параметры, то попробуйте стереть их и нажмите enter. Чтобы страница загрузилась без передачи какой либо информации через URL.
Если комментарии в дискусс загрузились исправно, то в скрипте вызова виджета необходимо указать идентификатор страницы и канонический урл. Хотя во втором не обязательно именно канонический, можно просто указать адрес страницы.

Например, мы имеем некую статью по адресу http://test.ru/news/articl-name/. Именно этот адрес нам и нужно передать без каких либо других параметров

Давайте изначально глянем на скрипт который нам предлагает установить на сайт сам disqus


<div id="disqus_thread"></div>

и JS



/**
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables
*/

(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');

s.src = '//EXAMPLE.disqus.com/embed.js';

s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();

Всё что нам нужно, как я и говорил, передать урл страницы и идентификатор.

В качестве идентификатора лично я использую ID статьи или элемента.

Кстати, так как я в основном Битрикс разработчик, то пример будет показан в рамках данной CMS, ну я думаю вы поймёте куда нужно указывать ID

Вот чём нужно дополнить скрипт:



var ur = location.href; //Получаем Урл
var ur1 = ur.split('?'); //Разбиваем на массив относительно - ?
var disqus_config = function () { // Передаём в Дискусс необходимые параметры
this.page.url = ur1[0]; // Урл без GET параметров
this.page.identifier = <?=$arResult['ID']?>; // ID элемента или статьи
};

В итоге у нас получится следующие


/**
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables
*/

var ur = location.href; //Получаем Урл
var ur1 = ur.split('?'); //Разбиваем на массив относительно - ?
var disqus_config = function () { // Передаём в Дискусс необходимые параметры
this.page.url = ur1[0]; // Урл без GET параметров
this.page.identifier = <?=$arResult['ID']?>; // ID элемента или статьи
};

(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');

s.src = '//EXAMPLE.disqus.com/embed.js';

s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();

Собственно всё. В таком случае всё должно заработать и комментарии будут исправно выводиться не смотря на передачу каких либо параметров в URL


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


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