可以让wp将最后一条评论插入另一个页面吗

时间:2013-05-08 作者:Strasbourg

如果我们将wp设置为在X条评论之后将评论分成多个页面,并且我们有X+1条评论,则wp只显示最后一条评论,而不显示X,并将评论从底部移动到下一页。任何帮助都将不胜感激,因为这对我正在尝试使用的东西来说是一件大事。

3 个回复
最合适的回答,由SO网友:Strasbourg 整理而成

好啊所以我就这样做了。也许会有帮助。使用的代码来自Last comment page first with full number of comments? 但为了满足我的需要,做了一些改动。因此,这将进入模板页面,您可以在其中调用注释(或者您可以将其包装在函数中并将其放入functions.php中)

 <?php comments_template( \'\', true ); ?>
 <?php 
 $comments_to_display = get_comments(array(\'post_id\' => get_the_ID()));
 $comments_per_page = 10; // MAYBE: use get_option()?
 $comment_page = get_query_var( \'cpage\' );
 $comment_this_page_start = 0;
 $comment_this_page_count = $comments_per_page;
 $oldest_comment_page_count = count( $comments_to_display ) % $comments_per_page;
 if ( 0 == $oldest_comment_page_count ) {
 $oldest_comment_page_count = $comments_per_page;
 }
 if ( 1 == $comment_page ) {
$comment_this_page_count = $oldest_comment_page_count;
 } else {
$comment_this_page_start = $oldest_comment_page_count + ($comment_page - 2) * 
$comments_per_page;
}
$comments_to_display = array_slice( $comments_to_display, $comment_this_page_start,  
$comment_this_page_count );

wp_list_comments(array(\'style\' => \'div\'), $comments_to_display); ?>
你现在已经准备好摇滚了!

当天晚些时候:

我尝试在ajax注释加载插件中使用这种方法,但并没有按我所希望的那样工作;我暂时把它处理掉了。(参数有一个问题;基本上,如果将$comments\\u per\\u page设置为10,它将显示当天的前10条评论,然后等待评论数达到20以显示下一个10。然后等待评论数达到30以显示从20到30的评论。问题似乎很简单,也许将来有人会解决。)

因此,回到我的解决方案,我添加了以下内容:

 $comments = array_reverse($comments);
在注释中。php(主题目录),未选中将注释拆分为管理面板中的页面,并添加:

 \'per_page\' => \'100\'  
作为wp\\u list\\u comments()的参数。

现在,我总是会显示最近的100条评论,每次评论标记达到101条时,我都不会请求新的页面。

它只需将旧的注释推到下一页,并在顶部添加新的注释!它更简单,头痛更少,所以我推荐第二种解决方案!

SO网友:montrealist

在wp admin中,转到Settings -> Discussion -> Break comments into pages with X top level comments per page and the FIRST page displayed by default.

如果选择默认显示的第一页,请确保下面的下拉列表设置为OLDER comments at the top of each page.

SO网友:pereyra

还有this plugin 这很好地解决了这个问题。

结束