WordPress: come aumentare il numero di risultati della ricerca

Tramite $query_string è possibile personalizzare a piacere il numero dei risultati della ricerca. Ecco delle applicazioni pratiche diverse dal solito.

Su WordPress c’è un parametro che decide per ogni pagina il numero di post da mostrare. All’interno del pannello di controllo, sotto Impostazioni – Lettura, esiste infatti la voce “Le pagine del blog visualizzano al massimo:” , che solitamente viene utilizzata per controllare il numero di post in homepage.

Questo parametro però non controlla solo il numero di post della home, ma limita anche il numero dei risultati della ricerca e le pagine corrispondenti al template archive.php (ad esempio la pagina delle categorie e dei tag).

Per modificare il numero di risultati restituiti (in questo caso 10) è sufficiente usare:

<?php query_posts($query_string.'&posts_per_page=10'); ?>

subito prima del loop:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>

E’ fondamentale che sia presente il parametro $query_string per mantenere la query originale senza sovrascriverla, altrimenti vi verranno restituiti solo gli ultimi post invece dei risultati della ricerca.

In questo modo è possibile ad esempio avere un numero limitato di post sulla home del blog e 10-20 risultati sulla ricerca.

Altri usi di $query_string

Le query di WordPress possono essere personalizzate in altri modi, anche fuori dal classico loop. Se ad esempio in homepage volessimo mostrare due gruppi di tre post appartenenti esclusivamente a due diverse categorie possiamo scrivere:

<?php $my_query = new WP_Query($query_string.'showposts=3&cat=1&posts_per_page=3'); ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>

[...]

<?php endwhile; ?>

e

<?php $my_query = new  WP_Query($query_string.'showposts=3&cat=2&posts_per_page=3');  ?>
<?php while ($my_query->have_posts()) : $my_query->the_post();  ?>

[...]

<?php endwhile; ?>

Il parametro cat è fondamentale per indicare quale categoria mostrare (il numero corrisponde all’ID della categoria), mentre showposts e posts_per_page indicano quanti articoli visualizzare, anche nelle pagine successive alla prima.

Non capita tutti i giorni di avere a che fare con query diverse dal solito, soprattutto lavorando a semplici blog, ma in certe situazioni è bene sapere come poter personalizzare WordPress secondo le proprie esigenze. Se siete interessati ad altre personalizzazioni o volete condividere delle scoperte che avete fatto con WordPress lasciate un commento, potremmo approfondire il discorso.

Tommaso Baldovino

UX/UI Designer di Firenze, appassionato di tecnologia e accessibilità, esperto di WordPress, blogger, gamer e amante della fotografia.

8 commenti su “WordPress: come aumentare il numero di risultati della ricerca”

  1. @Graziano per la home non c’è bisogno di seguire queste istruzioni, basta configurare il parametro dall’admin di WordPress ;)

  2. Ciao, sto cercando di personalizzare la mia pagina di ricerca di wordpress in modo che mi restituisca i risultati in ordine alfabetico e non cronologico. Ti faccio un esempio: ho due pagine “cane” e “gatto”, quando cerco la parola cane attraverso il motore di ricerca interno la pagina di ricerca mi restituisce prima gatto e poi cane, perché in ordine cronologico gatto è l’ultima pagina ad essere stata creata. Come posso cambiare questo parametro? grazie!

  3. @enrico utilizzando sempre la funzione query_posts() puoi ordinare i risultati in base al titolo così:

    < ?php query_posts('orderby=title&order=ASC'); ?>

    Ovviamente puoi combinare questi parametri con quelli di cui parlo nel post.

  4. ciao, grazie per il tuo consiglio. Ho cercato di inserire il codice che mi hai indicato all’interno del file search.php facendo varie prove. Non sono esperto in php quindi probabilmente sto sbagliando il punto dove inserire il codice.
    Ho provato a inserirlo subito dopo:

    Sto sbagliando?