私は盲目でなければなりませんが、私の人生のためには、Disqusのコメント数を機能させるための完全な指示を見つけることができません。
表示したいのは、コメント数の数だけです。
[フッターにJavaScriptを出力]オプションをオンにしました。私はカスタムループを持っていますが、コメントカウントを有効にするためにそれらに何を入れるべきなのかわかりません。
私のloop.phpファイルは:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php if ( comments_open() ) : ?>
<a href="<?php echo get_permalink($post->ID); ?>#disqus_thread" class="post-disqus">
<span class="dsq-postid"></span>
<?php echo $post->comment_count; ?>
</a>
<?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>
DisqusのフッターJavaScriptコードは次のとおりです。
<script type="text/javascript">
// <![CDATA[
var disqus_shortname = 'mysite';
var disqus_domain = 'disqus.com';
(function () {
var nodes = document.getElementsByTagName('span');
for (var i = 0, url; i < nodes.length; i++) {
if (nodes[i].className.indexOf('dsq-postid') != -1) {
nodes[i].parentNode.setAttribute('data-disqus-identifier', nodes[i].getAttribute('rel'));
url = nodes[i].parentNode.href.split('#', 1);
if (url.length == 1) url = url[0];
else url = url[1]
nodes[i].parentNode.href = url + '#disqus_thread';
}
}
var s = document.createElement('script'); s.async = true;
s.type = 'text/javascript';
s.src = 'http://' + disqus_domain + '/forums/' + disqus_shortname + '/count.js';
(document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
}());
//]]>
</script>
ループ内に多数のコメントを表示するのと同じ問題があります。
私はこれを解決するために、1124行目の plugins/disqus/disqus.php の2つのフィルターをオフにします。
<?php
#add_filter('comments_number', 'dsq_comments_text');
#add_filter('get_comments_number', 'dsq_comments_number');
そして私は私のテンプレートspanにdisqus要素を追加しました:
<?php
if ( function_exists( 'dsq_identifier_for_post' ) ) {
global $post;
echo '<span class="'.$css_class.' dsq-postid" rel="'.htmlspecialchars(dsq_identifier_for_post($post)).'">';
} else {
echo '<span class="'.$css_class.'">';
}