¿Resultados diferentes con la consulta ('s = computer') vs get_posts ('s = computer')?

2

Tengo dos partes de código diferentes y está obteniendo dos resultados diferentes.

$search_query = new WP_Query();
$search_posts = $search_query->query('s=computer'); 
echo count($search_posts);

vs.

$search_posts = get_posts('s=computer');
echo count($search_posts);

¿Cuál es la razón de los diferentes valores?

(El valor proporcionado por el primero es correcto. Es el mismo que el número de publicaciones que recibo cuando hago una búsqueda regular en WP. Pero el primer código no funcionará dentro del complemento php, solo funcionaría en una plantilla.)

Gracias.

    
pregunta MikeSchinkel 08.10.2010 - 22:28

1 respuesta

11

Los argumentos predeterminados para la función get_posts() incluyen 'numberposts' => 5 .

Entonces, si está buscando un término de búsqueda que devuelve más de cinco (5) resultados, la segunda consulta devolverá un valor máximo de 5 a menos que pase 's=computer&numberposts=-1' como su cadena de consulta.

El objeto WP_Query no tiene un valor predeterminado de 'numberposts' , aunque está afectado por el recuento de "Las páginas de blogs aparecen como máximo" en el panel de configuración. Por lo tanto, si desea que el recuento total utilice la función query() , debe anular los valores predeterminados de esta manera:

$search_query->query('s=computer&nopaging=true')
    
respondido por el goldenapples 08.10.2010 - 23:08

Lea otras preguntas en las etiquetas