Is there an easy way to paginate the result set coming from $wpdb->get_results()?
I want to get a paginated list of a user’s comments on the author_archive page – some of the users of the community have > 500 comments, so pagination is important.
Is there an in-built way of doing this with WordPress, or do I need to build it myself?
[Updated to add code]
<!-- Show comments -->
<?php
$querystr = "
SELECT comment_ID, comment_post_ID, post_title, LEFT(comment_content,100) as comment_content, comment_date_gmt
FROM $wpdb->comments, $wpdb->posts
WHERE user_id = $thisauthor->ID
AND comment_post_id = ID
AND comment_approved = 1
ORDER BY comment_ID DESC
LIMIT 100
";
$comments_array = $wpdb->get_results($querystr, OBJECT);
if ($comments_array): ?>
<div id="author-comments-list">
<h2>Recent Comments </h2>
<ul>
<?
$odd_even = "odd";
foreach ($comments_array as $comment):
echo "<li class='$odd_even'><a href='". get_bloginfo('url') ."/?p=".$comment->comment_post_ID."/#comment-". $comment->comment_ID ."'>". $comment->post_title ."</a> : ".mysql2date('l jS F, Y, g:ia',$comment->comment_date_gmt);
echo "<div class='author-comments-content'>".$comment->comment_content."</li>";
$odd_even = ($odd_even == "odd" ? "even" : "odd");
endforeach; ?>
</ul>
</div>
<? endif; ?>
You can use the function paginate_links() for any pagination.
For your specific case:
for those looking for complete answer based on the question and @sorich87 answer.
I thought I should post solution here, for people like me (wordpress beginner).
this is how I got it working for my WordPress Website