Ответ 1
Обновление 03.11.2014:
Теперь у нас есть метод использования количества комментариев для любого элемента, который вы хотите. Стандартный скрипт count.js теперь будет работать, если вы:
- Используйте класс
disqus-comment-count
И - Используйте атрибут
data-disqus-url
ИЛИdata-disqus-identifier
Так что теперь любой из этих элементов будет работать:
<span class="disqus-comment-count" data-disqus-url="http://example.com/path-to-thread/"> <!-- Count will be inserted here --> </span>
и
<span class="disqus-comment-count" data-disqus-identifier="your_disqus_identifier"> <!-- Count will be inserted here --> </span>
Старый ответ (не делайте этого больше)
Сценарий count.js довольно негибкий, когда речь идет о типах тегов, которые он ищет (это должен быть тег a
), поэтому для этого вам потребуется использовать API.
Этот вызов API возвращает массив данных потока (вы ищете целое число "Posts") для любого количества потоков, которое вы укажете: http://disqus.com/api/docs/threads/set/
Из-за ограничений API вы в идеале должны запускать эту серверную часть и кэшировать счетчики для обслуживания клиентов. Однако, если у вас нет очень загруженного сайта, делать это на стороне клиента обычно хорошо. Вы можете написать по электронной почте [email protected], если вам нужно более 1000 запросов в час для вашего приложения.
EDIT
Вот краткий пример того, как вы могли бы сделать это с помощью jQuery. Это предполагает, что у вас есть несколько пустых div, которые выглядят так:
<div class="my-class" data-disqus-url="http://example.com/some-url-that-matches-disqus_url/"></div>
le javascript:
$(document).ready(function () {
var disqusPublicKey = "YOUR_PUBLIC_KEY";
var disqusShortname = "YOUR_SHORTNAME";
var urlArray = [];
$('.my-class').each(function () {
var url = $(this).attr('data-disqus-url');
urlArray.push('link:' + url);
});
$('#some-button').click(function () {
$.ajax({
type: 'GET',
url: "https://disqus.com/api/3.0/threads/set.jsonp",
data: { api_key: disqusPublicKey, forum : disqusShortname, thread : urlArray }, // URL method
cache: false,
dataType: 'jsonp',
success: function (result) {
for (var i in result.response) {
var countText = " comments";
var count = result.response[i].posts;
if (count == 1)
countText = " comment";
$('div[data-disqus-url="' + result.response[i].link + '"]').html('<h4>' + count + countText + '</h4>');
}
}
});
});