global $post;
$cat1=get_cat_ID('test1');
$cat2=get_cat_ID('test2');
$myrecentposts = get_posts(array('post_not_in' => get_option('sticky_posts'), 'cat' => "-$cat1,-$cat2",'showposts' => 5));
$myrecentposts2 = get_posts(array('post_not_in' => get_option('sticky_posts'), 'cat' => "-$cat1,-$cat2"));
$myrecentpostscount = count($myrecentposts2);
echo $myrecentpostscount;
The value of the echo is 5 (the correct value should be 9). The only way I can get it to return the correct value for the post count is to change the $myrecentposts2 calculation as follows…
$myrecentposts2 = get_posts(array('post_not_in' => get_option('sticky_posts'), 'cat' => "-$cat1,-$cat2",'showposts' => 999));
The WordPress codex says
get_posts
has a defaultposts_per_page
value of5
.To remove this limit useposts_per_page = -1
.To remove this limit you can use
nopaging = true
.Look at the
get_posts()
documentation on Codex, you can see there’s a parameter for number of posts you want to display:The parameter is:
'posts_per_page'
Usage:
'posts_per_page'=> -1 // for removing the limit
. This will fetch all the posts.update:
'nopaging' => true
ist the way to go with newer versionsAlso, showposts is deprecated as of WP 2.9 (or maybe even 2.8), use posts_per_page whenever you’re trying to control the amount of posts returned.