I notice that sticky posts will disregard the posts_per_page param? Like I have a query like

$q = new WP_Query(array( 'posts_per_page' => 4, ... ));

If there are 3 sticky posts, I will get 6 posts? (its abit strange tho why 6 not 7 (4+3)) I dont want to ignore sticky posts. How can I force the posts per page limit? eg, I have 10 sticky, I still get only 4 posts.

One way I can think of is a counter that counts to 4 and exit the loop. But there isnt a WP way? This appears to be more of a bug to me?

  • 4
    by using the ignore_sticky_posts argument you're not excluding them from the list, you're just treating them like normal posts. Isn't that what you want? Jul 4, 2011 at 11:08
  • More than one year later: Any progress on this topic?
    – kaiser
    Sep 23, 2012 at 12:50
  • I cannot replicate this, seems to behave exactly as described wanted behavior.
    – Rarst
    Oct 8, 2012 at 19:56
  • This is reproducible bug and is a known bug; being tracked at core.trac.wordpress.org/ticket/27282
    – Will
    Sep 25, 2017 at 21:07


Browse other questions tagged or ask your own question.