Multiple Queries with Pagination using next_posts_link

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?

Posted in ,

The Mighty Mo! Design Co.

2 Comments

  1. Démian on May 13, 2011 at 7:22 pm

    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.



  2. toby on May 14, 2011 at 2:33 am

    I can’t think of any reason why it wouldn’t work on categories… Please let me know if you figure this out!



RSS From Toby’s Blog

  • How Digital Ocean Cost Us Thousands of Dollars in a Single Day
    Here’s the rub for me: My belief is that bad stuff happens, and you need to own it. Digital Ocean definitely did not own it in this case. I wonder how the original founders of Digital Ocean would have reacted had they been in charge… For example, wouldn’t it be nice if an actual human… […]
  • Where uncertainty exists, don’t order specific.
    4 Idiot Case Studies with 2 simple age-old business lessons. The post Where uncertainty exists, don’t order specific. appeared first on Toby Cryns, WordPress Trainer in Minneapolis, MN.
  • “Now THAT was a good meeting!”
    A single effective meeting can change the course of history for a company. Imagine if you could lead effective meetings EVERY DAY! You can, but it takes curiosity & practice. This article is a good place to start your journey to a more effective you. The post “Now THAT was a good meeting!” appeared first […]

More posts from themightymo.com

How to merge multiple csv files via command line

How to merge multiple .csv files via command line

By The Mighty Mo! Design Co. | May 17, 2023

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…

WordPress Security Services

15 Best WordPress Support and Maintenance Services for 2023: Ensuring Your Website Stays in Top Shape

By The Mighty Mo! Design Co. | April 27, 2023

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…

how to set up Cloudflare whitelist for ip

How to Whitelist SEM Rush IPs in Cloudflare

By The Mighty Mo! Design Co. | April 24, 2023

Alright, I’m going to show you how to whitelist a set of IPs on CloudFlare. In our case we use SEMrush and we want to make sure the SEMrush has full access to our sites.

RSS From Toby’s Blog

  • How Digital Ocean Cost Us Thousands of Dollars in a Single Day
    Here’s the rub for me: My belief is that bad stuff happens, and you need to own it. Digital Ocean definitely did not own it in this case. I wonder how the original founders of Digital Ocean would have reacted had they been in charge… For example, wouldn’t it be nice if an actual human… […]
  • Where uncertainty exists, don’t order specific.
    4 Idiot Case Studies with 2 simple age-old business lessons. The post Where uncertainty exists, don’t order specific. appeared first on Toby Cryns, WordPress Trainer in Minneapolis, MN.
  • “Now THAT was a good meeting!”
    A single effective meeting can change the course of history for a company. Imagine if you could lead effective meetings EVERY DAY! You can, but it takes curiosity & practice. This article is a good place to start your journey to a more effective you. The post “Now THAT was a good meeting!” appeared first […]