Come sappiamo, dalle preferenze di WordPress impostiamo il numero predefinito di post da visualizzare in home, in una pagina archivio, nei risultati di una ricerca e così via. Ma può capitare di avere la necessità di visualizzarne un numero diverso in alcuni template. Ad esempio, è certamente utile per il lettore visualizzare nei risultati di una ricerca un numero più elevato di post, magari anche senza il contenuto o solo con una breve introduzione.
Apportare questa modifica al proprio blog è abbastanza semplice se si utilizza un filtro. Ci sono almeno due modi per farlo: in questo post vi mostro quello che uso io.
Nel file functions.php
incollare questa nuova funzione:
function ubn_posts_per_page() {
global $wp_query;
if ( is_archive() || is_search() ) {
$wp_query->query_vars['posts_per_page'] = 25;
}
}
add_filter( 'pre_get_posts', 'ubn_posts_per_page' );
Il valore da personalizzare, ovviamente, è quel 25
. Potete anche aggiungere altre condizioni nella riga 3. In questo blog, ad esempio, la riga si presenta precisamente così:
if (is_search() || is_archive() || is_page('featured')) {
...
}
Per quanto riguarda il lato tecnico, la funzione viene eseguita proprio prima di ricevere i post e altera, mediante un filtro, il valore ricavato dalle preferenze memorizzate nel database, cambiandolo con quello inserito qui. Semplice ed efficace.