Today I had a real problem with a WordPress website that uses multiple wp_query calls on the home page. The issue was that I could not use the next_posts_link() function properly, since WordPress ignores the “offset” parameter when creating paginated pages.
The solution I used was found here on the WordPress Codex.
Here is the code:
1) ? ($onum) : 0;
query_posts("posts_per_page=$qry[total]&paged=$paged&showposts=$qry[1]&offset=$offset");
if (have_posts()) :
while (have_posts()) : the_post();
// Loop stuff
endwhile;
endif;
// Reuse the offset variable (rather then creating a new one), setting to a new value (plus any additional offset)
// Total in first query, plus any offset, if there is one
$offset = $qry[1] + (($paged > 1) ? $onum : 0);
query_posts("posts_per_page=$qry[total]&offset=$offset&showposts=$qry[2]");
if (have_posts()) :
while (have_posts()) : the_post();
// Loop stuff
endwhile;
endif;
// Again just reusing the variable and adding offset (if page is more then 1)
// First posts total, plus second posts total, plus offset (if there is one)..
$offset = ($qry[1] + $qry[2]) + (($paged > 1) ? $onum : 0);
query_posts("posts_per_page=$qry[total]&offset=$offset&showposts=$qry[3]");
if (have_posts()) :
while (have_posts()) : the_post();
// Loop stuff
endwhile;
endif;
// Unset the variables (we've finished with them, no reason to hold onto them)
unset($qry,$offset,$onum);
?>
Can you think of an easier way to do this?
2 Comments
More posts from themightymo.com
How to Block Mailinator and other spam from Gravity Forms
I’ve had a couple of scenarios where I’ve needed to block a specific domain from filling out Gravity Forms on my WordPress site. Today I needed to block spammy “mailinator.com” submissions from a contact form. The solution was simple: Install and configure the Gravity Forms Email Blacklist plugin. In a few minutes – all done!
How to merge multiple .csv files via command line
Today I downloaded 29 csv files with tax information. I could import those files 1 at a time into WooCommerce, but wouldn’t it be nice if I could merge them first and then only import a single file? The unix command is simple – just navigate to the folder with all the csv files and…
15 Best WordPress Support and Maintenance Services for 2023: Ensuring Your Website Stays in Top Shape
Small business owners and non-profit leaders know that keeping your website secure, fast, and fully-functional is critical to success. Here’s the unspoken truth: You can either learn how to do all that tech maintenance and development stuff yourself, or hire someone else to do it. But let’s face it, doing it yourself isn’t always the…
Hi,
Thank you for this issue. It’s work fine for me on index.php but not for the archives pages: tags, search, category…
Do you have a solution?
Many thanks in advance,
Dem.
I can’t think of any reason why it wouldn’t work on categories… Please let me know if you figure this out!