Afișează toate rezultatele căutării
Calea rapidă și murdară de a face acest lucru ar fi să folosești din nou query_posts
, dublând numărul de apeluri către baza de date.
<?php if (have_posts()) : ?>
<?php query_posts('showposts=999'); ?>
O soluție mai bună ar fi să adaugi acest cod în functions.php
, modificând interogarea inițială înainte ca aceasta să fie executată:
function change_wp_search_size($query) {
if ( $query->is_search ) // Asigură-te că este o pagină de căutare
$query->query_vars['posts_per_page'] = 10; // Schimbă 10 cu numărul de articole pe care dorești să le afișezi
return $query; // Returnează variabilele noastre de interogare modificate
}
add_filter('pre_get_posts', 'change_wp_search_size'); // Conectează funcția noastră personalizată la filtrul de cerere
Dacă dorești să afișezi un număr nelimitat de articole, folosește -1
.

showposts
este învechit, folosește posts_per_page
. În orice caz, primul exemplu nu va funcționa - va ignora termenul de căutare și va afișa doar ultimele 999 de postări. Ar trebui să îl combinați cu interogarea curentă (vezi Codex). Al doilea răspuns este cu mult mai bun și, după cum subliniază @WouterB, evită reinterogarea bazei de date.

Mulțumesc @Stephen Harris, am copiat primul exemplu dintr-un blog foarte vechi și apoi am realizat că pe un site mai nou am folosit a doua opțiune. Nu am analizat detaliile.

Mulțumesc Wouter, funcționează! De asemenea, folosesc acest cod pentru a afișa numărul de rezultate global $wp_query;
$total_results = $wp_query->found_posts;
echo $total_results;
și acum afișează întotdeauna 0.

Vă rugăm să nu sugerați query_posts()
nici măcar ca o soluție "rapidă și murdară".

Încearcă http://wordpress.org/extend/plugins/custom-post-limits/ Poți seta limite independente/număr de articole pentru toate tipurile de rezultate, precum căutare, categorii, etichete, arhive, autori, pagini, etc., fără a avea nevoie de șabloane de pagină sau bucle personalizate.
