Cum să adaugi numărul de comentarii Disqus

27 feb. 2011, 11:51:20
Vizualizări: 24.2K
Voturi: 5

Probabil că am trecut cu vederea, dar nu pot găsi instrucțiunile complete pentru a face să funcționeze contorul de comentarii Disqus.

Tot ce vreau să fie afișat este doar numărul de comentarii.

Am bifat opțiunea "Output JavaScript in footer". Am bucle personalizate dar nu știu ce ar trebui să pun în ele pentru a activa numărul de comentarii.

Fișierul meu loop.php este:

<?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; ?>

Codul JavaScript Disqus pentru footer este:

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

Cred că ar fi util mai multe informații: De unde ai luat acel cod? Folosești pluginul Disqus sau codul universal? Ce versiune de WP? Dacă folosești pluginul, ce versiune a pluginului? Dacă ai folosit codul universal, care este codul pe care l-ai folosit pentru a afișa secțiunea de comentarii Disqus?

matt matt
6 mar. 2011 23:55:36

Versiunea WordPress este cea mai recentă, la fel și pluginul Disqus. Codul JavaScript este codul de subsol al Disqus. Codul pe care îl folosesc pentru a afișa comentariile Disqus este codul loop... dar nu sunt sigur exact ce cod caută Disqus, de aici și problema.

EddyR EddyR
8 mar. 2011 14:39:40

Mai simplu spus... cum pot face ca pluginul Disqus pentru WordPress să afișeze doar numărul de comentarii în interiorul "the loop"??? Vreau doar un exemplu de cod.

EddyR EddyR
8 mar. 2011 14:46:40

scuze, nu am văzut că ai răspuns. Comentez de pe telefon, așa că nu am toate informațiile necesare la îndemână. Încă nu înțeleg de unde ai luat codul. de la plugin sau de la codul universal de pe site-ul lor? Nu văd unde ai definit identificatorul disqus.

matt matt
9 mar. 2011 08:40:17
Toate răspunsurile la întrebare 2
1

Am aceeași problemă cu afișarea numărului de comentarii în buclă.

Am rezolvat acest lucru prin dezactivarea a două filtre în fișierul plugins/disqus/disqus.php la linia 1124:

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

Și am adăugat în template-ul meu un element span cu elemente 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
Comentarii

Am ajuns la ceva similar în final și aveam de gând să postez soluția ieri, dar am uitat :) Acum trebuie să modific markup-ul predefinit ulterior pentru a face ceva util cu el of

EddyR EddyR
19 mar. 2011 06:15:44
Comentarii

Ce este data-disqus-identifier? Ce este dsq_thread_id? Unde trebuie să le pun? Cum le apelez? Nu este același cod cu cel oferit automat de pluginul Wordpress. Aceasta este problema mea - ei nu explică nimic.

EddyR EddyR
27 feb. 2011 16:18:56

"Puteți face acest lucru adăugând #disqus_thread la sfârșitul atributului href al linkurilor dumneavoastră." ... deci ar trebui să arate cam așa <a href="http://example.com#disqus_thread">Textul linkului tău</a>

kaiser kaiser
27 feb. 2011 17:41:42

Am făcut deja asta... uitându-mă la codul js se pare că caută toate <span class="dsq-postid"> apoi setează atributul rel="data-disqus-identifier" pentru parentnode și adaugă "#disqus_thread". Deci presupun că ar trebui să fie configurat astfel <a href="mysite"><span class="dsq-postid"></span></a> dar din nou - nimic ???

EddyR EddyR
27 feb. 2011 18:06:29