2011-06-04 22 views
6

Hasta donde yo sé, en Tumblr no existe el bloque {block:Pages}, por lo que todo lo que agreguemos a las publicaciones normales también se agrega a las páginas, cosas como compartir y, lo peor de todo, sistemas de comentarios.Tumblr: ¿Cómo ocultar los comentarios de Disqus en Pages?

¿Alguien sabe de un truco, o alguna forma de eliminar/ocultar elementos de las páginas? Es difícil porque las páginas están usando los bloques {block:Permalink}{block:Text}, así que estoy bastante perplejo.

Hace poco acabo de descubrir cómo modificar el CSS con etiquetas postales utilizando sólo HTML aquí: Tumblr: How to control CSS with post tagging (UPDATE: Working Method without JQuery!)

pensé que tal vez podemos usar esto, la idea sería algo como esto:

{block:Text} 
    <div class="post {block:HasTags}pagefix {block:Tags}{Tag}{/...}"> 
    ... 
{/block:Text} 

El De la forma en que funciona es por defecto ocultamos cualquier elemento que no queremos que se muestre en las páginas (ejemplo: Disqus), agregando la clase .pagefix entre {block:HasTags} en el envoltorio div, podemos decir que muestre los elementos en las publicaciones con etiquetas, de esa manera los elementos solo se mostrarán en publicaciones y no en páginas, porque las páginas no tienen etiquetas.

dos problemas con este, 1) todas las publicaciones deben ser etiquetados con el fin de mostrar cualquier elemento oculto y 2) el comentario de script Disqus tendría que ser insertado en cada tipo de correos, en lugar de sólo una vez antes de la {/block:Posts} bloque final.

Puedo estar simplemente colocando Disqus en el lugar equivocado, o algún otro error, déjame saber lo que piensas, no puedo encontrar nada sobre esto en la red en cualquier lugar. Es tan tonto para no tener un bloque de página única ...

Respuesta

3

El truco es envolver el código en Disqus {block:PermalinkPagination} etiquetas de la siguiente manera:

{block:PermalinkPagination} 
    ...disqus code... 
{/block:PermalinkPagination} 

Su pregunta es una duplicación parcial de this one en webapps.stackexhange .com, se puede encontrar una explicación completa en here.

+2

Parece que hay una nueva etiqueta para que ésta: {block: PermalinkPage} http://www.tumblr.com/docs/en/custom_themes – Andreas

+0

este truco funciona perfectamente, pero si sólo tiene una publicación, truco está roto –

+0

Como @graygilmore establece a continuación, el método correcto es usar '{block: Date}'. El método anterior es engañoso y propenso a fallar. – mikedidthis

8

Simplemente ajuste su código Disqus en el bloque de fechas.

{block:Date} 
    <!-- Disqus code --> 
{/block:Date} 

Dado que sólo los mensajes tienen fechas, el código Disqus nunca se tiene representado en una página. Esto también resuelve el problema anterior donde tener solo una publicación rompe el método.

0

También hay un problema con el código disqus por el cual si desea que el conteo de comentarios se muestre en la página principal pero no en un cuadro de comentarios (pero tenga el cuadro de comentarios y comentarios en la página Permalink) debe hacer lo siguiente:

Agregar #disqus_thread al enlace directo de la página, por ejemplo <a href="{Permalink}#disqus_thread"></a>

NO ajuste el código disqus en {block: PermalinkPagination} {/ block: PermalinkPagination} ya que esto ocultará los comentarios de la página principal.Elimine ese bloque si existe, y envuelva la parte superior del script disqus solo en {block: Permalinkpage} {/ block: Permalinkpage} - código de error exacto para Tumblr reproducido a continuación;

  {block:IfDisqusShortname}      
       {block:Permalinkpage} 
       <script type="text/javascript">var disqus_url = "{Permalink}"; var disqus_title ="{block:PostTitle}{PostTitle}{/block:PostTitle}";</script> 
       <div id="disqus_thread"></div> 
       <script type="text/javascript"> 
       (function() { 
       var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; 
       dsq.src = 'http://{text:Disqus Shortname}.disqus.com/embed.js'; 
       (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); 
       })(); 
       </script> 
       <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript={text:Disqus Shortname}">comments powered by Disqus.</a></noscript> 
       {/block:Permalinkpage} 


       <!--<a href="http://disqus.com" class="dsq-brlink">{Title}'s comments powered by <span class="logo-disqus">Disqus</span></a>--> 
       <script type="text/javascript"> 
       var disqus_shortname = '{text:Disqus Shortname}'; 
       (function() { 
       var s = document.createElement('script'); s.async = true; 
       s.src = 'http://{text:Disqus Shortname}.disqus.com/count.js'; 
       (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s); 
       }()); 
       </script> 
     {/block:IfDisqusShortname} 
     </div> 
Cuestiones relacionadas