好的,经过一些研究,我想出了解决方案。解决方案是在循环外显示wordpress注释,以及如何在循环外放置disqus注释。
First, How to place wordpress comments outside the loop:
单件。php我们需要定义一个新的全局变量来存储post id(将其放在循环中)
global $postid;
$postid = get_the_ID();
然后,我们可以使用以下代码将注释列表放置在循环之外:
<ol class="commentlist">
<?php
//Gather comments for a specific page/post
$comments = get_comments(array(
\'post_id\' => $postid,
\'status\' => \'approve\' //Change this to the type of comments to be displayed
));
//Display the list of comments
wp_list_comments(array(
\'per_page\' => 10, //Allow comment pagination
\'reverse_top_level\' => false //Show the latest comments at the top of the list
), $comments);
?>
</ol>
您还可以放置评论表单并传递帖子id,如下所示:
<?php comment_form( $args, $postid ); ?>
For DISQUS:
单件。php,我们需要定义第二个变量来获取帖子标题(将其放入循环中):
global $dposttitle;
$dposttitle = wp_title( \'\', false);
然后添加以下通话,无论您想在何处显示您的disqus评论:
在孩子的主题函数中添加以下内容:
function disqus_embed($disqus_shortname, $postid, $dposttitle) {
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 = "\'.$dposttitle.\'";
var disqus_url = "\'.get_permalink($postid).\'";
var disqus_identifier = "\'.$disqus_shortname.\'-\'.$postid.\'";
</script>\';
}
最后,在single中调用disqs\\u嵌入到循环外。php
disqus_embed($disqus_shortname, $postid, $dposttitle);
请随时告诉我是否有更好的方法来实现这一点。