Disqus标识符是什么
一个Disqus标识符
是一个唯一的字符串,在Disqus系统中用于寻找该页面的频道(thread)
。一般使用 disqus_identifier JavaScript configuration variable 来传递(见下文)。
当一个使用的Disqus的页面被加载时,Disqus使用该标识符来辨别正确的评论频道,然后加载该频道。如果找不到正确的频道,将会创建一个新频道。Disqus标识符将频道与页面联系起来。
Disqus标识符被用在Disqus内嵌代码(embed code)
和评论计数代码(the comment count code)
中。如果你在支持Disqus的平台比如WordPress
和Blogger
中使用Disqus,该标识符在插件(plugins)
的内部使用。
标识符与频道ID
Disqus标识符与频道ID
不一样,频道ID是Disqus内部使用的,因为并非所有站点都设置了Disqus标识符。所有频道都有频道ID,但不是所有频道都有Disqus标识符。
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不会加载。
用法:使用字符串来指定你的论坛短名
示例:
JavaScript
var disqus_shortname = 'example';
disqus_identifier
将如何辨识当前页面告诉Disqus。当Disqus加载时,该标识符被用来寻找正确的频道。如果disqus_identifier
未定义,将使用页面的URL
。而要是改动了文章的路径或者改变了域名,URL就显得不可靠了,所以我们推荐你使用自己标识频道的方式。
注意,不要把多个标识符赋值到相同的频道URL上,那样会造成标识符冲突(Identifier Conflict
)。
插件,比如说WordPress下的,会自动以博客的文章id来定义此项。
用法:指定一个字符串或者整数作为唯一标识符。可以在服务器端被动态渲染。
好处:你将可以引用同一个频道,而不管它加载处的URL。
示例:
以下使用文章的路径作为标识符:
JavaScript
var disqus_identifier = '/december-2010/the-best-day-of-my-life/';
以下使用一个唯一的id作为标识符:
JavaScript
var disqus_identifier = '2583573';
很有可能你会需要动态渲染该值,以下就是一个使用PHP的示例:
JavaScript
var 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 时完全不同的频道。
为了确保总是加载正确的频道,你应该在你的页面中使用绝对路径来定义:
JavaScript
var disqus_url = 'http://example.com/helloworld.html';
disqus_category_id
告诉Disqus当前页使用的分类(category
)。这在第一次在Disqus中创建频道时使用。
分类主要用于我们的API筛选结果;分类不用来审核(比方说在审核面板过滤评论)。可以在Settings > advanced
页面或者使用我们的(分类)API来创建新分类。如果你使用一个在你的论坛设置中还未被创建的分类ID,你会收到一个400错误请求
。
JavaScript用法:指定一个分类ID(不是标题)。如果未定义,Disqus使用该论坛的默认的通用分类。
示例:
JavaScript
var disqus_category_id = '123456'; // 使用ID为'123456'的运动分类。
API用法:通过分类过滤结果。
示例:利用categories/listPosts
端点(endpoint
)(或分类参数
与posts/list
端点结合)来列出某一确定分类的评论。
评论计数
可以使用评论计数在任何你想使用的元素上。只要你:
- 使用
disqus-comment-count
类 - 使用
data-disqus-url
或data-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>