Wordpress,Disqus评论和错误的网址

时间:2017-08-17 16:30:53

标签: wordpress disqus

我有一个使用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?

1 个答案:

答案 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评论。