Visualizza tutti i risultati di ricerca
Il modo rapido e sporco per farlo sarebbe usare nuovamente query_posts
, raddoppiando il numero di chiamate al database.
<?php if (have_posts()) : ?>
<?php query_posts('showposts=999'); ?>
Sarebbe meglio aggiungere questo a functions.php
, modificando la query originale prima che venga eseguita:
function change_wp_search_size($query) {
if ( $query->is_search ) // Assicurati che sia una pagina di ricerca
$query->query_vars['posts_per_page'] = 10; // Cambia 10 con il numero di articoli che vuoi mostrare
return $query; // Restituisci le nostre variabili di query modificate
}
add_filter('pre_get_posts', 'change_wp_search_size'); // Colleghiamo la nostra funzione personalizzata al filtro della richiesta
Se vuoi mostrare un numero illimitato di articoli, usa -1
.

showposts
è deprecato, usa posts_per_page
. In ogni caso il primo esempio non funzionerà - ignorerà il termine di ricerca e mostrerà semplicemente gli ultimi 999 post. Dovresti unirlo alla query corrente (vedi Codex). La seconda risposta è di gran lunga la migliore e, come fa notare @WouterB, evita di rieseguire la query sul database.

Grazie @Stephen Harris, ho copiato e incollato il primo esempio da un blog molto vecchio, e poi ho effettivamente realizzato che su un sito più recente ho usato la seconda opzione. Non ho approfondito i dettagli.

Grazie Wouter funziona! Uso anche questo codice per visualizzare il numero di risultati global $wp_query;
$total_results = $wp_query->found_posts;
echo $total_results;
e ora mostra sempre 0.

Per favore, non suggerire query_posts()
nemmeno come soluzione "rapida e approssimativa".

Prova http://wordpress.org/extend/plugins/custom-post-limits/ Puoi impostare limiti/quantità di articoli indipendenti per ogni tipo di risultato, come ricerca, categoria, tag, archivi, autore, paginazione, ecc., senza bisogno di template di pagina o loop personalizzati.
