Disqus進階使用

Disqus標識符是什麼

一個Disqus標識符是一個惟一的字符串,在Disqus系統中用於尋找該頁面的頻道(thread)。通常使用 disqus_identifier JavaScript configuration variable 來傳遞(見下文)。javascript

當一個使用的Disqus的頁面被加載時,Disqus使用該標識符來辨別正確的評論頻道,而後加載該頻道。若是找不到正確的頻道,將會建立一個新頻道。Disqus標識符將頻道與頁面聯繫起來。php

Disqus標識符被用在Disqus內嵌代碼(embed code)評論計數代碼(the comment count code)中。若是你在支持Disqus的平臺好比WordPressBlogger中使用Disqus,該標識符在插件(plugins)的內部使用。html

標識符與頻道ID

Disqus標識符與頻道ID不同,頻道ID是Disqus內部使用的,由於並不是全部站點都設置了Disqus標識符。全部頻道都有頻道ID,但不是全部頻道都有Disqus標識符。java

來自:What is a Disqus identifier?服務器

JS配置變量

配置變量做爲Disqus的行爲和設置參數來使用。它們在加載Disqus的頁面的HTML中被定義。
這些變量在加載了Disqus的每一個頁面中都必須存在,所以請在你用來渲染頁面的動態模板中包含它們。app

放置配置變量

配置變量可被添加在embed.js腳本以前的任何地方,它們使用<script/>標籤包裹住。好比說:async

JavaScript

<script type="text/javascript"> /* * * 配置變量:此代碼僅做示例 * * */ var disqus_shortname = 'example'; // Required - Replace example with your forum shortname var disqus_identifier = 'a unique identifier for each page where Disqus is present'; var disqus_title = 'a unique title for each page where Disqus is present'; var disqus_url = 'a unique URL for each page where Disqus is present'; /* * * DON'T EDIT BELOW THIS LINE * * */ (function() { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })(); </script>

若是你使用了咱們的插件,最好把這段代碼放在你的header.php模板(或其餘等效的模板)中,而不是編輯插件文件。ide

disqus_shortname

把你的論壇短名(shortname)告訴Disqus,短名是你在Disqus註冊時對應網站的惟一標識符。若是未定義,Disqus不會加載。post

用法:使用字符串來指定你的論壇短名
示例網站

JavaScriptvar disqus_shortname = 'example';

disqus_identifier

將如何辨識當前頁面告訴Disqus。當Disqus加載時,該標識符被用來尋找正確的頻道。若是disqus_identifier未定義,將使用頁面的URL。而要是改動了文章的路徑或者改變了域名,URL就顯得不可靠了,因此咱們推薦你使用本身標識頻道的方式。

注意,不要把多個標識符賦值到相同的頻道URL上,那樣會形成標識符衝突(Identifier Conflict)。

插件,好比說WordPress下的,會自動以博客的文章id來定義此項。

用法:指定一個字符串或者整數做爲惟一標識符。能夠在服務器端被動態渲染。
好處:你將能夠引用同一個頻道,而無論它加載處的URL。
示例
如下使用文章的路徑做爲標識符:

JavaScriptvar disqus_identifier = '/december-2010/the-best-day-of-my-life/';

如下使用一個惟一的id做爲標識符:

JavaScriptvar disqus_identifier = '2583573';

頗有可能你會須要動態渲染該值,如下就是一個使用PHP的示例:

JavaScriptvar disqus_identifier = '<? php echo $my_identifier; ?>';

disqus_title

告知Disqus當前頁的標題。這在第一次在Disqus建立頻道時使用。若是未定義,Disqus將使用該頁的<titile>屬性。若是該屬性沒法使用,Disqus使用該頁的URL。

好處

  • 你能夠設置一個更加友好的標題來顯示。
  • 你的頻道標題會當即生效。

將頻道的標題設置成 http://example.com/helloworld.html 一類的可不太好!

disqus_url

告知Disqus當前頁的URL。若是未定義,Disqus使用window.location.href的值。該URL在disqus_identifier未定義時用來尋找或建立一個頻道。此外,當一個頻道被建立時該URL,總被保存,這樣Disqus才知道一個頻道屬於哪一個頁面。

當disqus_url缺乏時,使用window.location.href,咱們強烈推薦定義該變量。若是一個用戶使用URL http://example.com/helloworld.html?123 訪問你的頁面,Disqus可能會加載一個與使用 http://example.com/helloworld.html 時徹底不一樣的頻道。

爲了確保老是加載正確的頻道,你應該在你的頁面中使用絕對路徑來定義:

JavaScriptvar disqus_url = 'http://example.com/helloworld.html';

disqus_category_id

告訴Disqus當前頁使用的分類(category)。這在第一次在Disqus中建立頻道時使用。

分類主要用於咱們的API篩選結果;分類不用來審覈(比方說在審覈面板過濾評論)。能夠在Settings > advanced頁面或者使用咱們的(分類)API來建立新分類。若是你使用一個在你的論壇設置中還未被建立的分類ID,你會收到一個400錯誤請求

JavaScript用法:指定一個分類ID(不是標題)。若是未定義,Disqus使用該論壇的默認的通用分類。
示例

JavaScriptvar disqus_category_id = '123456'; // 使用ID爲'123456'的運動分類。

API用法:經過分類過濾結果。
示例:利用categories/listPosts端點(endpoint )(或分類參數posts/list端點結合)來列出某一肯定分類的評論。

來自:JavaScript configuration variables

評論計數

可使用評論計數在任何你想使用的元素上。只要你:

  • 使用disqus-comment-count
  • 使用data-disqus-urldata-disqus-identifier屬性

count.js就能起做用。

下面兩種方法都行:

html<span class="disqus-comment-count" data-disqus-url="http://example.com/path-to-thread/"> <!-- Count will be inserted here --> </span>

html<span class="disqus-comment-count" data-disqus-identifier="your_disqus_identifier"> <!-- Count will be inserted here --> </span>

來自:Showing Disqus comment count in a DIV or SPAN - not

相關文章
相關標籤/搜索