2011-06-04 99 views
6

據我所知,在Tumblr沒有{block:Pages}區塊,所以我們添加到普通帖子的任何東西都會被添加到頁面中,比如共享和最糟糕的是評論系統。Tumblr:如何在網頁上隱藏Disqus評論?

有誰知道黑客或任何方式從網頁中刪除/隱藏元素?這很難,因爲網頁使用{block:Permalink}{block:Text}塊,所以我很難過。

我最近剛剛發現瞭如何修改CSS,只要使用HTML在這裏交標籤:Tumblr: How to control CSS with post tagging (UPDATE: Working Method without JQuery!)

我想,也許我們可以利用這一點,想法是這樣的:

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

的它的工作方式是默認情況下,我們隱藏任何我們不希望在頁面上顯示的元素(例如:Disqus),在div包裝器中添加{block:HasTags}之間的類.pagefix,我們可以告訴它顯示帶有標籤的帖子上的元素,這樣元素只會顯示在帖子上而不顯示頁面,因爲頁面沒有標籤。

兩個問題,1)所有帖子必須標記以顯示任何隱藏的項目和2)在Disqus留言腳本將有前被插入到每一個崗位類型,而不是僅僅一次{/block:Posts}結束塊。

我可能只是將Disqus放置在錯誤的地方或其他一些錯誤,讓我知道您的想法,我無法在任何地方找到關於此事的任何信息。它是如此愚蠢不具有唯一的頁塊...

回答

3

關鍵是要包裝你Disqus代碼{block:PermalinkPagination}標籤如下:

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

你的問題是this one上webapps.stackexhange部分重複.com,可以找到完整的說明here

+2

看起來有它一個新的標籤: {塊:PermalinkPage} http://www.tumblr.com/docs/en/custom_themes – Andreas 2012-04-21 12:52:08

+0

這一招可以正常使用,但如果你只有一個帖子,訣竅破產 – 2012-07-04 18:39:22

+0

正如下面的@graygilmore所述,正確的方法是使用'{block:Date}'。上述方法具有誤導性,容易失敗。 – mikedidthis 2013-06-23 16:39:02

8

只需將您的Disqus代碼包裹在日期塊中即可。

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

由於只有帖子有日期,該Disqus代碼永遠不會在頁面上呈現。這也解決了上面只有一個帖子打破方法的問題。

0

還有一個disqus代碼的問題,如果你想讓評論數顯示在首頁而不是評論框(但有評論框和評論以及評論數顯示在永久頁面)您必須執行以下操作:

將#disqus_thread追加到直接頁面鏈接例如<a href="{Permalink}#disqus_thread"></a>

不要將disqus代碼封裝在{block:PermalinkPagination} {/ block:PermalinkPagination}中,因爲這會隱藏頭版的評論。如果它存在,則刪除該塊,並在{block:永久鏈接} {/ block:Permalinkpage}中將disqus腳本的頂部部分僅包含 - 下面轉載的Tumblr的精確disqus代碼;

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