Cómo agregar el contador de comentarios de Disqus
Debo estar ciego pero no puedo encontrar por nada las instrucciones completas para hacer funcionar el contador de comentarios de Disqus.
Todo lo que quiero mostrar es simplemente el número del contador de comentarios.
He marcado la opción "Output JavaScript in footer". Tengo bucles personalizados pero no tengo idea de qué se supone que debo poner en ellos para activar el contador de comentarios.
Mi archivo loop.php es:
<?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; ?>
El código JavaScript de Disqus para el pie de página es:
<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>

Tengo el mismo problema mostrando el número de comentarios en el loop.
Lo solucioné desactivando dos filtros en el archivo plugins/disqus/disqus.php en la línea 1124:
<?php
#add_filter('comments_number', 'dsq_comments_text');
#add_filter('get_comments_number', 'dsq_comments_number');
Y agregué a mi template un span con elementos de 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.'">';
}


¿Qué es data-disqus-identifier? ¿Qué es dsq_thread_id? ¿Dónde lo coloco? ¿Cómo lo llamo? No es el mismo código que proporciona automáticamente el plugin de Wordpress. Este es mi problema: no explican nada.

"Puedes hacer esto agregando #disqus_thread al final del atributo href de tus enlaces." ... entonces es algo como <a href="http://example.com#disqus_thread">Tu texto del enlace</a>

Ya lo hice... mirando el código js parece buscar todos los <span class="dsq-postid">, luego establece el atributo rel="data-disqus-identifier" en el parentnode y agrega "#disqus_thread". Así que supongo que debería configurarse como <a href="misitio"><span class="dsq-postid"></span></a> pero nuevamente - nada ???
