Empty Post__in WordPress problem
Ran into a funny thing today. If you're performing a wordpress search with WP_Query, and you're using the post__in parameter to specify an array of ID's to retrieve and your array is empty then you end up with the post__in field ignore entirely and the other parameters taking precedence.
This is rather strange, as I'd expect it to show 0 posts since no ID's would match an empty list.
Specifically, my arguments to WP_Query were along these lines:
$query_args = array(
'post_type' => 'redacted',
'post_status' => 'publish',
'posts_per_page' => $limit,
'paged' => $page,
'post__in' => $ids,
'meta_key' => '_expiration_date',
'meta_value' => time(),
'meta_compare' => '>=',
'ignore_sticky_posts'= > true
);
If my ids array was empty, then I'd just get everything back.
Which isn't what I wanted at all, so to fix the problem I just
initialized the array with -1 and it all worked the way I expected it
to.
Well, weirder things have happend. I wonder if this is a WordPress bug or intentional?