Disqus标识符是什么

一个Disqus标识符是一个唯一的字符串,在Disqus系统中用于寻找该页面的频道(thread)。一般使用 disqus_identifier JavaScript configuration variable 来传递(见下文)。

当一个使用的Disqus的页面被加载时,Disqus使用该标识符来辨别正确的评论频道,然后加载该频道。如果找不到正确的频道,将会创建一个新频道。Disqus标识符将频道与页面联系起来。

Disqus标识符被用在Disqus内嵌代码(embed code)评论计数代码(the comment count code)中。如果你在支持Disqus的平台比如WordPressBlogger中使用Disqus,该标识符在插件(plugins)的内部使用。

标识符与频道ID

Disqus标识符与频道ID不一样,频道ID是Disqus内部使用的,因为并非所有站点都设置了Disqus标识符。所有频道都有频道ID,但不是所有频道都有Disqus标识符。

来自:What is a Disqus identifier?

JS配置变量

配置变量作为Disqus的行为和设置参数来使用。它们在加载Disqus的页面的HTML中被定义。
这些变量在加载了Disqus的每个页面中都必须存在,因此请在你用来渲染页面的动态模板中包含它们。

放置配置变量

配置变量可被添加在embed.js脚本之前的任何地方,它们使用<script/>标签包裹住。比如说:

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模板(或其他等效的模板)中,而不是编辑插件文件。

disqus_shortname

把你的论坛短名(shortname)告诉Disqus,短名是你在Disqus注册时对应网站的唯一标识符。如果未定义,Disqus不会加载。

用法:使用字符串来指定你的论坛短名
示例

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


土卜皿
341 声望8 粉丝

栽花种树,潜水跑酷。