我有一个使用Disqus评论的Wordpress页面。在页面底部我有这个:
<!-- DISQUS COMMENTs -->
<div id="comments">
<div id="disqus_thread"></div>
<script>
/**
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/
var disqus_config = function () {
this.page.url = '<?php the_permalink(); ?>'; // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = '<?php the_ID(); ?>'; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
};
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = 'https://example.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<!-- /#comments -->
在我的页面中,我显示了对当前帖子的评论数量,如下所示:
<a href="<?php the_permalink(); ?>#disqus_thread">0 Comments</a>
麻烦的是,它不起作用。即使页面上有注释,注释也始终显示为零。我想我知道为什么会这样,但我不确定如何解决它。
所以:
我的'评论'锚渲染如此:
<a href="https://www.example.com/blog/my-post-name#disqus_thread">0 Comments</a>
在我底部的JavaScript代码中,页面网址设置正确如下:
this.page.url = 'https://www.example.com/blog/my-post-name'
但是,如果我发表评论并登录到我的Disqus控制面板并将鼠标悬停在帖子网址上,则网址格式如下:
https://www.example.com/blog/?p=232
因此,在重写URL之前,Disqus JavaScript似乎正在读取页面的URL!这有意义吗?
解决问题的一种可能方法是让我的评论锚定渲染如下:
<a href="https://www.example.com/blog/?p=232#disqus_thread">0 Comments</a>
但这感觉有点哈哈。任何人的想法?
谢谢!
更新
我可以确认,像这样渲染我的评论锚会起作用:
<a href="<?php echo home_url(); ?>/?p=<?php echo get_the_ID(); ?>#disqus_thread">0 Comments</a>
然而,这更像是一种解决方法。如何让Disqus存储我重写的(看起来更干净的)URL而不是Wordpress的“Plain”(和丑陋的)URL?
答案 0 :(得分:0)
function disqus_embed($disqus_shortname) {
global $post;
wp_enqueue_script('disqus_embed','http://'.$disqus_shortname.'.disqus.com/embed.js');
echo '<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_shortname = "'.$disqus_shortname.'";
var disqus_title = "'.$post->post_title.'";
var disqus_url = "'.get_permalink($post->ID).'";
var disqus_identifier = "'.$disqus_shortname.'-'.$post->ID.'";
</script>'; }
使用此代码
<?php disqus_embed('myexampleblog'); ?>//replace myexampleblog with your blog or site name register on disqus.
您希望在single.php和page.php文件中的任何位置嵌入并显示该页面的Disqus评论。