¿Por qué get_posts() devuelve solo 5 publicaciones coincidentes, cuando debería devolver 9?

2 minutos de lectura

avatar de usuario
scott b

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;

El valor del eco es 5 (el valor correcto debería ser 9). La única forma en que puedo hacer que devuelva el valor correcto para el recuento de publicaciones es cambiar el cálculo de $myrecentposts2 de la siguiente manera…

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

avatar de usuario
romano

El códice de WordPress dice get_posts tiene un valor predeterminado posts_per_page valor de 5.

Para eliminar este límite, use posts_per_page = -1.

Para eliminar este límite puedes usar nopaging = true.

avatar de usuario
Kunal Mazumder

mira el get_posts() documentación sobre Codexpuede ver que hay un parámetro para la cantidad de publicaciones que desea mostrar:

El parámetro es: 'posts_per_page'

Uso: 'posts_per_page'=> -1 // for removing the limit. Esto recuperará todas las publicaciones.

actualizar: 'nopaging' => true es el camino a seguir con las versiones más nuevas

Además, showposts está obsoleto a partir de WP 2.9 (o tal vez incluso 2.8), use posts_per_page siempre que intente controlar la cantidad de publicaciones devueltas.

  • No sabía eso. Gracias Gipeto! ¿Qué versión se introdujo posts_per_page? En otras palabras, no quiero cambiar de showposts si es probable que arroje errores en los comunicados de wordpress recientes…

    – Scott B.

    26 de enero de 2010 a las 17:47


  • Gipetto, cuando cambio de ‘showposts’ => -1 a ‘posts_per_page’ => -1, en lugar de mostrar todas las publicaciones, solo obtengo 5. Voy a volver a mostrar las publicaciones por ahora.

    – Scott B.

    26 de enero de 2010 a las 18:00

¿Ha sido útil esta solución?