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

相关文章
相关标签/搜索