Due to a complex multisite config, I have a query which combines the posts from two blogs and I would like to paginate the results. I am grateful for any help. I have posted my query.
$latestposts = $wpdb->get_results(
"
(SELECT * FROM net_5_posts
INNER JOIN net_5_term_relationships ON net_5_posts.ID=net_5_term_relationships.object_id
WHERE post_type = 'post'
AND post_status = 'publish'
AND term_taxonomy_id = '151'
)
UNION ALL
(SELECT * FROM net_7_posts
INNER JOIN net_7_term_relationships ON net_7_posts.ID=net_7_term_relationships.object_id
WHERE post_type = 'post'
AND post_status = 'publish'
AND term_taxonomy_id = '20'
)
ORDER BY post_date
DESC LIMIT 5",'ARRAY_A');
foreach ($latestposts as $latestpost) {
$da_id = $latestpost['ID'];
$da_title = $latestpost['post_title'];
$da_content = strip_tags($latestpost['post_content']);
$da_content = limit_words($da_content,55);
$da_link = $latestpost['guid'];
$da_date = $latestpost['post_date'];
$da_date = date('F j, Y', strtotime($da_date));
echo '
<div class="ldapost">
<h2 class="lheader"><a href="'.$da_link.'">'.$da_title.'</a></h2>
<span class="ldate">'.$da_date.'</span>
<span class="lcontent">'.$da_content.'â¦</span><br>
<a class="button btnright" href="'.$da_link.'">Continue Reading</a>
</div>
';
}
Update
I’ve tested this and it works on my site. A few things:
$query
with yoursglobal $wpdb
(per your comment regarding global variables) since it’s out of scope!get_results()
returns an object when not told otherwise (second parameter is the return type)functions.php
.Here’s the function:
Original Post
The paginate_links function is independent of your query. Given a few parameters, like the total number of items and the current page, it can provide the pagination that you’re looking for. So you need to calculate:
I was thinking something like this (untested, sorry!):
References: