I am using the following code to generate a specific list of posts with WP_Query

$args = array (
    'post__in'   => $cookie_array,
    'post_type'  => 'tyre',
    'post_status'    => 'publish',
    'posts_per_page' => '100',

$cookie_array is an array I generate based on some values in a cookie (post id's). The problem is that for some reason the WP_Query won't display the post that corresponds to the last value in the array. For example if the array consists of 1,2,3 then my WP_Query only gets the posts with the id's 1 and 2.

I've printed out the values of the array, right before I call the argument list shown above and there's definitely 1 more value listed than WP_Query is getting.

Any ideas what's going on?


As per request the result of var_dump($cookie_array) - to confirm only 3 items are shown through my WP_Query when the array is set as below:

array(4) { [0]=> string(5) "15829" [1]=> string(5) "22728" [2]=> string(5) "22734" [3]=> string(5) "22725" } 

var_dump($getposts->request) outputs:

 string(230) "SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.ID IN (15829,22728,22734,22725) AND wp_posts.post_type = 'tyre' AND ((wp_posts.post_status = 'publish')) ORDER BY wp_posts.post_date DESC LIMIT 0, 100"
  • Can you show here your var_dump($cookie_array); result? May 7, 2014 at 7:49
  • Added to original post :)
    – Kev
    May 7, 2014 at 7:58
  • What does var_dump($query->request) say? (Where $query is your instance of WP_Query)
    – David
    May 7, 2014 at 8:00
  • Updated OP again with var_dump($getposts->request)
    – Kev
    May 7, 2014 at 8:15
  • 1
    And you get results when you query without the post__in part? And you're sure all of those posts are published posts of type 'tyre'?
    – Tom J Nowell
    May 7, 2014 at 9:10


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.