2010-01-25 9 views
9
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; 

Il valore dell'eco è 5 (il valore corretto deve essere 9). L'unico modo in cui posso farlo per restituire il valore corretto per il numero dei tuoi messaggi è quello di cambiare il calcolo $ myrecentposts2 come segue ...Perché get_posts() restituisce solo 5 post corrispondenti, quando dovrebbe restituire 9?

$myrecentposts2 = get_posts(array('post_not_in' => get_option('sticky_posts'), 'cat' => "-$cat1,-$cat2",'showposts' => 999)); 

risposta

16

Il codice di Wordpress dice get_posts ha un valore predefinito di posts_per_page5.

Per rimuovere questo limite utilizzare posts_per_page = -1.

Per rimuovere questo limite è possibile utilizzare nopaging = true.

+0

dolci! Come lo sai? –

+0

è nel codice wordpress http://codex.wordpress.org/Template_Tags/get_posts btw my bad - its posts_per_page anziché limit :) – roman

0

Inoltre, gli showposts sono deprecati dal WP 2.9 (o forse anche 2.8), utilizzare posts_per_page ogni volta che si tenta di controllare la quantità di post restituiti.

+0

Non lo sapevo. Grazie Gipetto! Quale versione è stata introdotta in posts_per_page? In altre parole, non voglio cambiare da showpost se è probabile che si verifichino errori negli ultimi rilasci di wordpress ... –

+0

Gipetto, quando cambio da 'showposts' => -1 a 'posts_per_page' => -1, piuttosto di quanto mostri tutti i post, ottengo solo 5. Sto tornando di nuovo agli showposts per ora. –

7

sguardo al get_posts() documentation on Codex, si può vedere c'è un parametro per numero di posti che si desidera visualizzare:

Il parametro è: 'posts_per_page'
Uso: 'posts_per_page'=> -1 // for removing the limit. Questo recupererà tutti i post.

aggiornamento: 'nopaging' => true ist la strada da percorrere con le nuove versioni

+0

'nopaging' => true ha fatto il trucco per me. Grazie! – Martin

Problemi correlati