2012-01-20 10 views
7

Ho una pagina dinamica che carica idee diverse. Sto usando disqus per i commenti, ma disqusita continua a caricare gli stessi commenti per ogni idea.Disqus Caricamento degli stessi commenti per le pagine dinamiche

Questo è il sito Web. http://tech-in.org/submitted_ideas/index.php.

Ecco il mio codice

<script type="text/javascript"> 
    /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */ 
    if(typeof DISQUS != 'undefined') { 
     DISQUS.reset({ 
     reload: true, 
     config: function() { 
      this.page.identifier = '<?php echo $title; ?>'; 
      this.page.url = 'http://tech-in.org/submitted_ideas/idea.php?id=<?php echo $idea_id; ?>'; 
     } 
     }); 
    } 
    var disqus_shortname = 'techinorg'; // required: replace example with your forum shortname 
    var disqus_identifier = '<?php echo $title; ?>'; 
    var disqus_url = 'http://tech-in.org/submitted_ideas/idea.php?id=<?php echo $idea_id; ?>'; 
    var disqus_title = document.getElementById('disqus_post_title').innerHTML; 
    var disqus_message = document.getElementById('disqus_post_message').innerHTML; 


    /* * * DON'T EDIT BELOW THIS LINE * * */ 
    (function() { 
     var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; 
     dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js'; 
     (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); 
    })(); 
</script> 

Si prega gentilmente di aiutare con ciò che sta causando l'errore e cosa posso fare per risolvere il problema

risposta

5

Disqus decide quale commenta a carico in base al disqus_identifier specificato. Quando viene caricata una "idea" diversa, assicurati di fornire un numero unico disqus_identifier corrispondente a tale idea. (. Non è chiaro che cosa $title rappresenta nello script PHP, che è ciò che è attualmente in fase assegnato a disqus_identifier)

+0

Tanto vale utilizzare l'URL per l'identificatore, giusto? –

+0

Ciao Cheeken, $ title è il titolo di ogni idea. Vedrai che il disqus_identifier è diverso quando vedi la fonte di ogni pagina di idea. Ciò significa che il titolo è reso correttamente. – Stanley

+1

Grazie a Madmartigan, l'impostazione di disqus_url per essere uguale con disqus_identifier ha risolto il problema. – Stanley

5

Sembra che l'identificativo non è abbastanza unica, vedere la documentazione di riferimento qui: http://docs.disqus.com/help/14/

Essa afferma:

Quando vengono visitate le pagine abilitate a Disqus, Disqus utilizza questo identificativo per determinare il thread di commento appropriato da caricare. Se non è stato possibile trovare il thread appropriato , viene creato un nuovo thread. Identificatori Disqus mantiene thread e pagine associate.

+1

Grazie a Jakub, ho risolto il problema utilizzando l'URL come identificatore. Ma il mio dubbio è che ogni idea ha il suo titolo. Non è abbastanza unico per Disqus da usare? – Stanley

+0

@Stanley, sembra che non sia abbastanza unico, a volte più unico è il migliore, oltre a chi se ne frega è un identificatore univoco, si potrebbe fare un hash di esso e funzionerebbe ancora. – Jakub

1

Mi sono imbattuto in questo stesso problema in una pagina che utilizza AJAX per caricare nuovi contenuti con un nuovo thread disqus. La soluzione per me era impostare sia l'identificatore che l'url uguali alla stessa cosa.

DISQUS.reset({ 
    reload: true, 
    config: function() { 
     this.page.identifier = 'http://example.com/#!' + myPageID; 
     this.page.url = 'http://example.com/#!' + myPageID; 
    }}); 

dove myPageID è un numero intero che aggiorno dinamicamente utilizzando AJAX

+1

Non è strano che tutte le soluzioni che ho trovato non funzionassero ma le tue, questo è sicuramente un problema di Disqus, ma il tuo commento mi ha salvato, grazie. – Ogdila

0

Ho finalmente trovato questo funzionamento come segue.

Il doco Disqus per i siti Ajax [1], afferma il requirements devono impostare entrambe le variabili this.page.identifier e this.page.URL utilizzando un full hashbang #!

var disqus_config = function() { 
    this.page.identifier = window.location.origin + '/#!' + identifier 
    this.page.url = window.location.origin + '/#!' + identifier 
} 

Confusamente, l'esempio recipe [2] collegato al doco sopra menzionato, non lo fa

Riferimenti:

[1] https://help.disqus.com/customer/portal/articles/472107-using-disqus-on-ajax-sites

[2] https://github.com/disqus/DISQUS-API-Recipes/blob/master/snippets/js/disqus-reset/disqus_reset.html

Problemi correlati