Come aggiungere il conteggio dei commenti Disqus

27 feb 2011, 11:51:20
Visualizzazioni: 24.2K
Voti: 5

Non riesco proprio a trovare le istruzioni complete per far funzionare il conteggio dei commenti Disqus.

Voglio semplicemente visualizzare il numero dei commenti.

Ho selezionato l'opzione "Output JavaScript in footer". Ho dei loop personalizzati ma non ho idea di cosa dovrei inserire per attivare il conteggio dei commenti.

Il mio file 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; ?>

Il codice javascript di Disqus per il footer è:

<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
Commenti

Penso che più informazioni sarebbero utili: Da dove hai preso quel codice? Stai usando il plugin Disqus o il codice universale? Quale versione di WP? Se stai usando il plugin, quale versione del plugin? Se hai usato il codice universale, qual è il codice che hai utilizzato per visualizzare la sezione commenti di Disqus?

matt matt
6 mar 2011 23:55:36

La versione di Wordpress è l'ultima disponibile, così come il plugin Disqus. Il Javascript è il codice footer di Disqus. Il codice che sto usando per visualizzare i commenti Disqus è il codice del loop... ma non sono sicuro di quale codice esattamente stia cercando Disqus, da qui il problema.

EddyR EddyR
8 mar 2011 14:39:40

Per dirla semplicemente... come faccio a fare in modo che il plugin Wordpress di Disqus visualizzi solo il numero di commenti all'interno del "the loop"??? Voglio solo un esempio di codice.

EddyR EddyR
8 mar 2011 14:46:40

scusa, non avevo visto che avevi risposto. Sto commentando dal telefono quindi non ho tutte le informazioni necessarie a portata di mano. Ancora non capisco da dove hai preso il codice. Dal plugin o dal codice universale sul loro sito? Non vedo dove hai definito l'identificatore di disqus.

matt matt
9 mar 2011 08:40:17
Tutte le risposte alla domanda 2
1

Ho lo stesso problema con la visualizzazione del numero di commenti nel loop.

L'ho risolto disattivando due filtri nel file plugins/disqus/disqus.php alla riga 1124:

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

E ho aggiunto al mio template uno span con gli elementi 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 mar 2011 11:09:52
Commenti

Alla fine ho pensato a qualcosa di simile e stavo per postare la soluzione ieri ma mi sono dimenticato :) Ora devo modificare il markup predefinito dopo il fatto per fare qualcosa di utile con esso sigh

EddyR EddyR
19 mar 2011 06:15:44
Commenti

Cos'è data-disqus-identifier? Cos'è dsq_thread_id? Dove lo inserisco? Come lo richiamo? Non è lo stesso codice fornito automaticamente dal plugin WordPress. Questo è il mio problema - non spiegano nulla.

EddyR EddyR
27 feb 2011 16:18:56

"Puoi farlo aggiungendo #disqus_thread alla fine dell'attributo href dei tuoi link." ... quindi sarebbe qualcosa come <a href="http://example.com#disqus_thread">Il testo del tuo link</a>

kaiser kaiser
27 feb 2011 17:41:42

L'ho già fatto... guardando il codice js sembra che cerchi tutti i <span class="dsq-postid"> poi imposta l'attributo rel="data-disqus-identifier" al parentnode e aggiunge "#disqus_thread". Quindi presumo che dovrei impostarlo come <a href="mysite"><span class="dsq-postid"></span></a> ma ancora - niente ???

EddyR EddyR
27 feb 2011 18:06:29