Per chi come me, utilizza diversi loops in home page, il problema di mostrare in una pagina “normale” gli articoli in ordine cronologico così come sono stati scritti si fa sentire.
In questi mesi ho provato diversi plugin e diverse soluzioni per creare la mia “pagina archivio” ma niente mi soddisfava. Si trattava sempre di elenchi numerati o puntati oppure di cose accattivanti ma poco pratiche come Snazzy Archive.
Mi sono detto: basta plugin e scriviamo un po’ di codice. Così sono arrivato a quella che, secondo la mia opinione, è la migliore soluzione in assoluto. Una pagina navigabile con tutti gli articoli in ordine cronologico in stile blog “normale” per venire incontro a chi i loop magazine-style così come sono in home page non piacciono.
Prima di iniziare con la spiegazione di ciò che ho fatto, però, che ne dite di dare un’occhiata al risultato finale andando nella mia pagina Archivio Articoli (raggiungibile anche cliccando su “tutti gli articoli” nella parte bassa della home page)? Bello no?

Iniziamo
- Per realizzare il nostro archivio è necessario creare un file template da utilizzare nella pagina che creeremo.
- Installare il plugin Different Post Per Page per suddividere l’archivio in pagine.
- Installare il plugin WP Page Numbers per rendere navigabili le pagine dell’archivio.
Realizziamo il Template
Se vogliamo che il template risulti coerente con il resto del sito, dobbiamo prelevare dal nostro tema una copia del file page.php così da avere già una base sulla quale inserire il codice senza scervellarci a ricreare la pagina da zero.
Da page.php cancelliamo tutto ciò che riguarda la visualizzazione del contenuto della pagina. In genere si tratta di un loop unico che riconoscete poichè ha una struttura del genere:
<div id="quello-che-è"> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> -- codice vario necessario alla visualizzazione della pagina ed al css -- <?php endwhile; endif; ?>
Inseriamo adesso al posto del codice citato sopra il seguente:
<!-- Mettiamo un menu' a tendina con le date -->
<select name="archive-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;'>
<option value=""><?php echo attribute_escape(__('Select Month')); ?></option>
<?php wp_get_archives('type=monthly&format=option&show_post_count=1'); ?> </select>
<!-- menu' a tendina con le categorie -->
<?php wp_dropdown_categories('orderby=name&show_count=1&show_option_none=Seleziona una categoria'); ?>
<script type="text/javascript">
var dropdown = document.getElementById("cat");
function onCatChange() {
if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
location.href =
"<?php echo get_option('home');?>/?cat="+dropdown.options[dropdown.selectedIndex].value;
}
}
dropdown.onchange = onCatChange;
</script>
<!--Imposta il numero di articoli da visualizzare in una pagina-->
<?php
$offset = "0";
$no_of_posts = "10"; //Number of posts to display on each page
if (preg_match('/page/', $_SERVER['REQUEST_URI'])) {
$uri = explode('/', $_SERVER['REQUEST_URI']);
foreach ($uri as $key=>$value) {
if ($value == "") {
unset($uri[$key]);
}
}
$offset = (array_pop($uri) * 10) - 10; //entrambi questi numeri devono essere uguali a $no_of_posts
}
query_posts('posts_per_page=' . $no_of_posts . '&offset=' . $offset); ?>
<!-- Il Loop -->
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<p><?php the_excerpt(); ?></p>
<?php endwhile; ?>
<?php endif; ?>
<!-- Se abbiamo il plugin wp_page_numbers questo mostrerà la navigazione per pagine -->
<?php if(function_exists('wp_page_numbers')) { wp_page_numbers(); } ?>
Ovviamente qui non consideriamo la formattazione css che dovrete inserire voi secondo lo stile del vostro tema.
In genere risolvete racchiudendo in un div particolare il loop (quindi andate a vedere le altre pagine come sono formattate in quanto a css), ma il vostro tema potrebbe essere più complesso (come sopra, occhio alle altre pagine
).
Per concludere questa parte di lavoro inseriamo in cima al file:
<?php /* Template Name: Archivio */ ?>
Salviamo ora il file come archivio.php e carichiamolo nella cartella del nostro tema.
La parte più facile
Dopo avere installato ed attivato i plugin citati sopra, creiamo una nuova pagina dalla bacheca e inseriamo come titolo, ad esempio Archivio Articoli.
Lasciamo vuoto il contenuto della pagina e scegliamo dal menu a tendina sulla destra (nella sezione attributi) il template che abbiamo appena creato.

Non ci resta che cliccare su Pubblica per avere la nostra pagina archivio con gli articoli mostrati in formato titolo+estratto e due comodi menu’ a tendina per spostarsi dall’archivio assoluto a quello del mese o della categoria.
Spero di essere stato abbastanza chiaro, per qualsiasi dubbio commentate pure
Happy Blogging!
Se ti è piaciuto questo post
Rimani sempre aggiornato:






Commenti (31)
[...] ad una pagina di archivio. Per creare una pagina di archivio consiglio di seguire questa guida: Archivio WordPress. Condividi questo [...]
ciao
volevo sapere se possibile
inserire una determinata categoria invece di mette tutti gli archivi ??
grazie