Resultados diferentes com query ('s = computer') vs get_posts ('s = computer')?

2

Eu tenho dois códigos diferentes e está retornando dois 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);

Qual é o motivo dos diferentes valores?

(O valor fornecido pelo primeiro está correto. É o mesmo que o número de posts que recebo quando faço uma pesquisa regular no WP. Mas o primeiro trecho de código não funciona dentro do plugin arquivo php, funcionaria apenas em um modelo.)

Obrigado.

    
por MikeSchinkel 08.10.2010 / 22:28

1 resposta

11

Os argumentos padrão para a função get_posts() incluem 'numberposts' => 5 .

Portanto, se você estiver pesquisando por um termo de pesquisa que retorne mais de cinco (5) resultados, a segunda consulta retornará um valor máximo de 5 , a menos que você passe 's=computer&numberposts=-1' como sua string de consulta.

O objeto WP_Query não tem um 'numberposts' padrão, embora seja afetado pela contagem de "Mostrar páginas do blog no máximo" em seu painel de configurações. Então, se você quiser a contagem total usando a função query() , você deve substituir os padrões como este:

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