it-swarm.dev

Různé výsledky s dotazem ('s = počítač') vs get_posts ('s = počítač')?

Mám dva různé kousky kódu a vracím dva rozdílné výsledky.

$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);

Jaký je důvod pro různé hodnoty?

(Hodnota poskytovaná první je správná. Je to stejné jako počet příspěvků, které dostávám při pravidelném vyhledávání ve WP. První část kódu však nebude fungovat v souboru php pluginu. bude fungovat pouze v šabloně.)

Dík.

2
Dan

Výchozí argumenty pro funkci get_posts() zahrnují 'numberposts' => 5.

Pokud se tedy dotazujete na hledaný výraz, který vrací více než pět (5) výsledků, druhý dotaz vrátí maximální hodnotu 5, pokud nezadáte 's=computer&numberposts=-1' jako řetězec dotazu.

Objekt WP_Query nemá výchozí hodnotu 'numberposts', ačkoli je ovlivněn "stránky blogu, které se zobrazují maximálně" počet v panelu nastavení. Chcete-li tedy celkový počet pomocí funkce query(), měli byste přepsat výchozí hodnoty takto:

$search_query->query('s=computer&nopaging=true')
11
goldenapples