因为我觉得这对我自己也非常有用,所以我继续写了一个自定义步行器,Walker_Paged_Threaded
.
我已经尽我最大的努力发表评论,诚然这有点牵强,但我对结果感到满意。
如何使用它
该类使用与原始类相同的抽象方法编写
Walker
, 以免仅限于评论。然而,为了保持简单,我们将
rename it*;
Walker_Comment_Paged_Threaded extends Walker_Comment
现在在您的主题中
comments.php
;
wp_list_comments( array( \'walker\' => new Walker_Comment_Paged_Threaded ) );
哇嘿!说明线程的分页注释。
已知的副作用
因为我们改变了计算页面的方式,函数如下
get_comment_pages_count
当传递以下参数时,将开始表现异常
$per_page
或
$threaded
. 然而,情况并非如此。
However, get_comment_pages_count
仍将回退Walker_Comment
如果$wp_query::max_num_comment_pages
为空。但如果你打电话wp_list_comments
首先,它将运行walker并自动设置属性。
If you are displaying comment pagination or page links before your comments, 你需要这样做;
<?php
/**
* Capture comments in an output buffer. The function needs to run before
* displaying page links, as it runs the walker and then sets the
* \'max_num_comment_pages\' property on $wp_query.
*/
ob_start();
wp_list_comments( array( \'walker\' => new Walker_Comment_Paged_Threaded ) );
$comments_list = ob_get_clean();
?>
<?php paginate_comments_links(); ?>
<?php echo $comments_list; ?>
相信我,这实际上是最整洁的解决方法!
*如果你想保持它的抽象性,每个意图没有多个副本,你可以伪造“多重继承”,这is a little ugly.
N.B. 我认为最好将此作为一个单独的答案,因为这实际上是一个答案!