Как добавить счетчик комментариев Disqus

27 февр. 2011 г., 11:51:20
Просмотры: 24.2K
Голосов: 5

Я, должно быть, слепой, но никак не могу найти полные инструкции по настройке счетчика комментариев Disqus.

Всё, что мне нужно - это просто отображение количества комментариев.

Я отметил опцию "Output JavaScript in footer". У меня есть пользовательские циклы, но я не знаю, что именно нужно в них добавить, чтобы активировать счетчик комментариев.

Мой файл loop.php содержит:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <?php if ( comments_open() ) : ?>
        <a href="<?php echo get_permalink($post->ID); ?>#disqus_thread" class="post-disqus">
           <span class="dsq-postid"></span>
           <?php echo $post->comment_count; ?>
        </a>
    <?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>

JavaScript код Disqus для подвала сайта:

<script type="text/javascript">
    // <![CDATA[
        var disqus_shortname = 'mysite';
        var disqus_domain = 'disqus.com';
        (function () {
            var nodes = document.getElementsByTagName('span');
            for (var i = 0, url; i < nodes.length; i++) {
                if (nodes[i].className.indexOf('dsq-postid') != -1) {
                    nodes[i].parentNode.setAttribute('data-disqus-identifier', nodes[i].getAttribute('rel'));
                    url = nodes[i].parentNode.href.split('#', 1);
                    if (url.length == 1) url = url[0];
                    else url = url[1]
                    nodes[i].parentNode.href = url + '#disqus_thread';
                }
            }
            var s = document.createElement('script'); s.async = true;
            s.type = 'text/javascript';
            s.src = 'http://' + disqus_domain + '/forums/' + disqus_shortname + '/count.js';
            (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
        }());
    //]]>
</script>
4
Комментарии

Думаю, дополнительная информация будет полезна: Откуда вы взяли этот код? Вы используете плагин Disqus или универсальный код? Какая версия WordPress? Если используете плагин, какая у него версия? Если использовали универсальный код, какой именно код вы применили для отображения секции комментариев Disqus?

matt matt
6 мар. 2011 г. 23:55:36

Версия WordPress последняя, как и версия плагина Disqus. Javascript-код — это футерный код Disqus. Код, который я использую для вывода комментариев Disqus, — это код цикла... но я не уверен, какой именно код ищет Disqus, отсюда и проблема.

EddyR EddyR
8 мар. 2011 г. 14:39:40

Проще говоря... как мне заставить плагин Disqus для WordPress отображать только число комментариев внутри "the loop"? Мне нужен просто пример кода.

EddyR EddyR
8 мар. 2011 г. 14:46:40

Извините, я не заметил ваш ответ. Пишу с телефона, поэтому у меня нет под рукой всей необходимой информации. Я все еще не понимаю, откуда вы взяли этот код. Из плагина или из универсального кода на их сайте? Я не вижу, где определен идентификатор Disqus.

matt matt
9 мар. 2011 г. 08:40:17
Все ответы на вопрос 2
1

У меня такая же проблема с отображением количества комментариев в цикле.

Я решил это, отключив два фильтра в файле plugins/disqus/disqus.php на строке 1124:

<?php
#add_filter('comments_number', 'dsq_comments_text');
#add_filter('get_comments_number', 'dsq_comments_number');

И добавил в свой шаблон span с элементами disqus:

<?php
if ( function_exists( 'dsq_identifier_for_post' ) ) {
    global $post;
    echo  '<span class="'.$css_class.' dsq-postid" rel="'.htmlspecialchars(dsq_identifier_for_post($post)).'">';
} else {
    echo '<span class="'.$css_class.'">';
}
18 мар. 2011 г. 11:09:52
Комментарии

В итоге я придумал что-то похожее и собирался опубликовать решение вчера, но забыл :) Теперь мне приходится изменять его предопределённую разметку постфактум, чтобы сделать с ней что-то полезное вздох

EddyR EddyR
19 мар. 2011 г. 06:15:44
3
27 февр. 2011 г. 14:44:25
Комментарии

Что такое data-disqus-identifier? Что такое dsq_thread_id? Куда это вставлять? Как это вызывать? Это не тот же код, который автоматически предоставляет плагин Wordpress. Вот в чем моя проблема - они ничего не объясняют.

EddyR EddyR
27 февр. 2011 г. 16:18:56

"Вы можете сделать это, добавив #disqus_thread в конец атрибута href ваших ссылок." ... то есть это что-то вроде <a href="http://example.com#disqus_thread">Текст вашей ссылки</a>

kaiser kaiser
27 февр. 2011 г. 17:41:42

Я уже так сделал... глядя на js-код, похоже, что он ищет все <span class="dsq-postid">, затем устанавливает атрибут rel="data-disqus-identifier" для parentnode и добавляет "#disqus_thread". Так что я предполагаю, что настройка должна выглядеть как <a href="mysite"><span class="dsq-postid"></span></a>, но опять же - ничего не работает ???

EddyR EddyR
27 февр. 2011 г. 18:06:29