我正在尝试使用分页链接显示用户在其作者页面上发表的评论列表。
首先,我在functions.php
中创建了一个简单函数,以获取作者的评论数量。
function commentCount() {
global $wpdb;
$author = get_user_by( 'slug', get_query_var( 'author_name' ) );
$count = $wpdb->get_var('SELECT COUNT(comment_ID) FROM ' . $wpdb->comments. ' WHERE comment_author_email = "' . $author->user_email . '"');
return $count;
}
在var_dump(commentCount())
中执行author.php
会返回该特定用户26的正确评论数。
接下来,我使用WP_Comment_Query()
创建了一个自定义查询,以检索作者的评论内容。
$comments_per_page = 10;
/*Count comments*/
$all_comments_approved = commentCount();
/*Get Current Page Var*/
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
/*How many comments offset*/
$offset = (($paged-1) * $comments_per_page) ;
/*Max number of pages*/
$max_num_pages = ceil( $all_comments_approved / $comments_per_page );
$args = array(
'user_id' => $author->ID, // comments by this user only
'status' => 'approve',
'post_status' => 'publish',
'post_type' => 'post',
'number' => $comments_per_page,
'offset' => $offset
);
$comments_query = new WP_Comment_Query;
$comments = $comments_query->query( $args );
// Comment Loop
if ( $comments ) {
foreach ( $comments as $comment ) {
echo $comment->comment_content . '<br>';
}
/*Set current page for pagination*/
$current_page = max(1, get_query_var('paged'));
/*Echo paginate links*/
echo paginate_links(array(
'base' => get_pagenum_link(1) . '%_%',
'current' => $current_page,
'total' => $max_num_pages,
'prev_text' => __('« Previous'),
'next_text' => __('Next »'),
'end_size' => 2,
'mid-size' => 3
));
} else {
echo 'No comments found.';
}
以上代码放在author.php
中,它会检索评论,并按照$comments_per_page
指定每天显示10条评论。我可以看到最后的分页链接,我看到3页。
如果我导航到第二页,我会看到其他10条评论。但是,如果我导航到第3页,我会得到404 Page Not Found
所以基本上,我只能看到26条中的20条评论。
我在这里缺少什么?
编辑:这是paginate_links()
<div class="">
<span class="page-numbers current">1</span>
<a class="page-numbers" href="http://localhost/sciencr/profile/jane-flegal/page/2/">2</a>
<a class="page-numbers" href="http://localhost/sciencr/profile/jane-flegal/page/3/">3</a>
<a class="next page-numbers" href="http://localhost/sciencr/profile/jane-flegal/page/2/">Next »</a>
</div>
答案 0 :(得分:0)
经过几个小时的研究后,我进入了这个解决方案,经过一些调整后,它顺利运行。
这基本上是一个分页错误,因为我在同一页面上有多个分页链接。以下链接的解决方案效果很好。
https://wordpress.stackexchange.com/questions/47259/multiple-wp-query-loops-with-pagination