2012-01-20 12 views
7

Tengo una página dinámica que carga diferentes ideas. Estoy usando disqus para los comentarios, pero disqus sigue cargando los mismos comentarios para cada idea.Disqus Cargando los mismos comentarios para las páginas dinámicas

Aquí está el sitio web. http://tech-in.org/submitted_ideas/index.php.

Aquí está mi código

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

por favor amablemente ayudar con lo que está causando el error y qué puedo hacer para resolverlo

Respuesta

5

Disqus decide qué comenta a la carga basándose en la disqus_identifier que especifique. Cuando se carga una "idea" diferente, asegúrese de proporcionar un único disqus_identifier que corresponda a esa idea. (. No está claro lo que $title representa en su script PHP, que es lo que actualmente se asigna a disqus_identifier)

+0

fuerza también utilizar el URL para el identificador, ¿verdad? –

+0

Hello Cheeken, $ título es el título para cada idea. Verá que el identificador_disqus es diferente cuando ve el origen de cada página de idea. Eso significa que el título se representa correctamente. – Stanley

+1

Gracias Madmartigan, establecer disqus_url para que sea igual con disqus_identifier ha resuelto el problema. – Stanley

5

Parece que el identificador no es lo suficientemente único, ver la documentación de referencia aquí: http://docs.disqus.com/help/14/

Afirma:

Cuando se visitan las páginas habilitadas para Disqus, Disqus usa este identificador para determinar el hilo de comentario apropiado que se cargará en . Si no se pudo encontrar el subproceso apropiado, se crea un nuevo subproceso. Los identificadores de Disqus mantienen los hilos y páginas asociados.

+1

Gracias a Jakub, he resuelto el problema usando la URL como identificador. Pero mi duda es que cada idea tiene su propio título. ¿No es eso lo suficientemente único para que Disqus lo use? – Stanley

+0

@Stanley, parece que no es lo suficientemente único, a veces cuanto más único mejor, además de a quién le importa es un identificador único, podría hacer un truco y funcionaría. – Jakub

1

Me encontré con este mismo problema en una página que usa AJAX para cargar contenido nuevo con un nuevo hilo de disqus. La solución para mí fue establecer el identificador y la url iguales a la misma cosa.

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

donde myPageID es un número entero que actualizar dinámicamente el uso de AJAX

+1

¿No es extraño que todas las soluciones que he encontrado no funcionen, sino la tuya, este es definitivamente un problema de Disqus, pero tu comentario me salvó, gracias. – Ogdila

0

finalmente conseguí este trabajo de la siguiente manera.

El doco Disqus para los sitios de Ajax [1], los Estados del requirements son para ajustar ambas variables this.page.identifier y this.page.URL usando un full hashbang #!

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

Confusamente, el ejemplo recipe [2] vinculado en el doco mencionado anteriormente, no hace esto

Referencias:

[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

Cuestiones relacionadas