Come creare una pagina per una categoria specifica

Oggi sbirciando in vari forum riguardanti Wordpress ho trovato la seguente domanda molto interessante:

"Ho un blog in cui vorrei che in una pagina particolare comparissero solamente i post di una categoria specifica (le news), come posso fare?"

La risposta al quesito non è difficile ma bisogna un po’ lavorare con i template delle pagine e con qualche tag avanzato. Ma procediamo come sempre un passo alla volta.

#1. Creazione del template della pagina

Innanzitutto è necessario creare il template della pagina che vogliamo personalizzare.

Con un editori di testo creiamo un file chiamato news.php

Per fare in modo che questo venga riconosciuto da Wordpress come un template di pagina, scriviamo in cima al file il seguente codice:

<?php

/*

Template Name: News

*/

?>

Sotto questo codice dovremo copiare tutto il contenuto del file index.php e modificarlo a nostro piacimento per dargli l’aspetto che desideriamo.

Fin’ora utilizzando questo file non accadrà nulla di particolare, e ci verranno mostrati tutti i post come sempre in ordine cronologico. Abbiamo quindi bisogno fare ricorso ad un tag avanzato di Wordpress.

#2. Inserimento di query_post

Il tag query_post è una funzione di Wordpress veramente utile. Grazie ad esso infatti può essere detto al programma di selezionare e mostrare solamente un certo tipo di post, in base alla categoria, alla data, al tag o qualunque altra classificazione utilizzabile in Wordpress.

Per usare questo tag aprite nuovamente il file news.php che abbiamo appena creato e all’inizio del Loop cercate la seguente linea di codice:

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

Appena prima di questa linea inserite quanto segue:

<?php query_posts('cat=x'); ?>

Al posto della x dovrete inserire il numero della categoria che volete compaia nel Loop (mentre tutte le altre verranno escluse). Il numero relativo alla categoria che volete usare lo potete trovare nel Pannello di Amministrazione di Wordpress sotto il menu Edit – Category.

Come creare una pagina specifica per una categoria con Wordpress

NOTA: Se volete che nel vostro Loop compaia più di una categoria, dovrete inserire i vari numeri delle categorie divisi da una virgola (ma senza spazio).

A questo punto salvate e chiudete il file. Ora non bisogna fare altro che creare la pagina.

#3. Creazione della pagina

Attraverso il Pannello di Amministrazione premete su Write – Page. per creare una nuova pagina.

Chiamiamo la pagina NEWS e poi senza aggiungere alcun contenuto scorriamo la finestra in basso fino a giungere alle opzioni avanzate.

Qui si trova una sezione denominata PAGE TEMPLATE in cui compare un menu a tendina con impostata la voce DEFAULT TEMPLATE in maniera predefinita (questo significa che Wordpress utilizzerà il file page.php per creare il template).

Come creare una pagina per una categoria specifica - Page Template

Per utilizzare il nostro nuovo template dovremo selezionare dal menu a tendina il template NEWS da noi appena creato.

Dopo aver pubblicato la pagina e cliccando sulla pagina NEWS del nostro blog, comparirà una lista dei post riguardanti solamente la categoria da noi selezionata attraverso il tag query_post.

Complimenti! Avete imparato ad usare una funzione avanzata di Wordpress che rende possibile una completa personalizzazione del vostro blog.

Se avete domande o problemi sono come sempre disponibile ad aiutare attraverso i commenti…

31 commenti

  1. Aeon ha detto:

    Grazie mille sei stato d’aiutissmo!!!

    Infatti ora sono riuscito a sistemare per ogni pagina una categoria diversa.

    Anche se il mio “sitino” è nato da 2 giorni, e sto solo facendo delle prove, mi sento gia a buon punto… :D

    —-

    C’è un problema però:

    Quando in una pagina sono visualizzati solo articoli di una specifica categoria, gli articoli vengono visualizzati nella loro interezza, anche se è stato impostato di far visualizzare un riassunto e/o avendo impostato il tasto “More” (o in italiano: “(Continua…)” )

    Sai dirmi come fare a risolvere?!

    GRAZIE MILLE!!!

  2. Aeon ha detto:

    Oops, ho inserito male l’indirizzo del sito.

    Questo è corretto:

    http://aeon19.altervista.org/

  3. Paolo ha detto:

    Ciao, probabilmente devi controllare che nel codice del Loop che usi per le cateogrie ci sia the_excerpt e non the_content.

    Se non sai come fare puoi leggere il mio post http://www.spaghettiwordpress.com/2008/07/come-mostrare-un-estratto-dei-post-nel-vostro-blog/

    Cmq adesso guardando sul tuo sito mi sembra che tu abbia già risolto il tuo problema, o almeno io vedo gli estratti dei post quando premo su una categoria.

  4. Aeon ha detto:

    Sì se si clicca nella sidebar a destra, e si entra nelle varie categorie allora gli articoli saranno mostrati solo come “estratto”.

    Mentre se clicco usando i link in alto a destra (likn a pagine contenenti una categoria specifica: tema di questa tua pagina :) ), gli articoli vengono visualizzati nella loro interezza.

    Non capisco perchè…

    Idee?!

  5. francesco ha detto:

    Grazie per i tuoi interessantissimi tutorial, mi sono stati di grande aiuto. Ho un problema, forse stupido, ma che non riesco a risolvere… tu scrivi che: “Il numero relativo alla categoria che volete usare lo potete trovare nel Pannello di Amministrazione di Wordpress sotto il menu Edit – Category.”
    ma proprio non riesco a trovarlo…Credo che nel mio WP in italiano dovrebbe essere in gestione categorie, ma nella pagina categorie non c’è nessun numero se non quello degli articoli pubblicati… Puoi aiutarmi? Grazie!

  6. blogotom ha detto:

    Ciao, ho seguito il tutorial ma ho questo problema: nel mio blog il menù a tendina page template non esiste. Più in generale, vorrei capire dove salvare la pagina (nel tuo caso news.php). Nella directory principale del tema?
    Grazie.

  7. Paolo ha detto:

    @Francesco: purtroppo le nuove versione di wordpress non mostrano più il numero della categoria vicino al nome. Ma c’è un semplice espediente. Semplicemente passa il mouse sopra il nome della categoria e nella barra di stato (quella in fondo al browser) ti comparirà il link alla categoria, in fondo alla quale troverai anche la dicitura ID_xx dove al posto di xx ci sarà il numero relativo alla categoria.

    @blogotom: il menu a tendina compare solamente quando ci sono pagine template che possono essere utilizzate, altrimenti è invisibile. Quindi metti la pagina news.php da te creata nella directory principale del tema e poi vedrai che il menu comparirà. Ciao

  8. blogotom ha detto:

    Ti ringrazio per la risposta. Avevo già fatto questa operazione, ma senza nessun risultato. Devo aver sbagliato qualcosa ma non riesco a individuare il problema. Comunque la sezione template non compare…

  9. Paolo ha detto:

    @Blogotom – strano che non compaia, controlla di aver scritto esattamente la parte iniziale (quella che comprende  “Template Name”), il menu dovrebbe poi comparire perchè in questo modo Wordpress riconosce il file come una pagina template.

  10. Murack ha detto:

    complimenti x questo tutorial

    mi è stato di grande aiuto x realizzare quello che volevo….

    grazie

    però mi serve un piccolo aiutino: vorrei fare in modo che un articolo compaia solo nella pagina di riferimento, e nn anche nella homepage….

    insomma escludere una certa categoria di articoli dal loop della homepage, facendola comparire solo nella pagina di riferimento

    se vai nel mio sito, vorrei fare in modo che gli articoli della categoria download, compaiano solo nella relativa pagina download…..

    come si fa?

    grazie in anticipo!

  11. andrea ha detto:

    Ho seguito passo a passo la tua miniguida, tutto PERFETTO!!!
    Sei un grande!!!!!

  12. andrea ha detto:

    sai se esiste anche il modo in cui gli articoli non vengano visualizzati nella Home? o bensì solo nella pagina creata?

  13. Murack ha detto:

    @ andrea: è quello che ho chiesto anche io….

    speriamo qualke anima pia risponda il prima possibile

  14. Claudio ha detto:

    stupendo , grazie per il tutorial ! mi e’ servito moltissimo.

  15. LoTaR ha detto:

    Salve, ho seguito questo tutorial e funziona perfettamente, l’unica cosa è che ho lo stesso problema Aeon, cioè  nella pagina, vedo gli articoli completi e non come nella home ( non funziona il tag more) se cambio the_content con the_excerpt me ne fà vedere una parte, ma non compare il tasto continua e non mi fà vedere le immagini.

    C’è una soluzione ??

  16. fabrizio ha detto:

    Complimenti a te per l’ottima guida sei il n°1.
    Ps

    Esiste un modo per inserire argomenti che non sono riportati anche nella home.
    Mi piacerebbe creare una pagina per i video di youtube, ma solo in questa pagina e non farli comparire anche nella home.
    Grazie per la guida!
    Ciao.
    Fabrizio.

  17. claudio ha detto:

    complimenti per il tutorial che e’ stato veramente utilissimo
    pero’ ho un problema che vorrei sottoporre

    andando sul mio sito http://www.lollando.com e poi alla PAGINA lapponia , in fondo alla pagina c’e’ la voce previous entries , pero’ cliccandoci sopra , non porta alla pagina seguente con gli altri post relativi a quella categoria. ma riporta alla stessa pagina iniziale, pur segnando sotto che la pagina e’ nuova, ovvero pagina 2.

    Nessun idea per risolvere il problema ? grazie :)

  18. Xargon ha detto:

    Ciao, innanzitutto complimenti per l’ottima guida!

    Ho due problemi già riportati sopra ma ai quali non è stata data risposta, ovvero:

    1) Nella pagina “News” visualizzo tutto l’articolo anzichè il pezzo dell’articolo con la dicitura “Continua a Leggere” come accade invece nella home

    2) Gli articoli che vanno a finire in “News” li visualizzo anche in home, come posso toglierli?

    Ringazio anticipatamente.

    PS: La mia “News” si chiama “Dalla Blogsfera”, il mio sito lo si può raggiungere cliccando sul mio nome qui nel commento.

  19. Xargon ha detto:

    Facendo altri test ho visto che per quanto riguarda il punto 1 mettendo the_content mi visualizza l’articolo per intero, però quando vado a inserire the_excrept mi da l’articolo senza immagini e troncato ad un certo punto da dei puntini di sospensione ma senza il “Continua a leggere”, io invece vorrei che ci siano le immagini e il continua a leggere, proprio come in home.

  20. halonfurious ha detto:

    chiedo scusa, so di essere un niubbo,  quiondi devo cheidere cose proprio banali, dove trovo il file index.php e come arrivo alla directory principale dove devo salvare news.php? grazie..

  21. Domenico ha detto:

    Ciao,
    Finalmente con il tuo tutorial ho parzialmente risolto un mio incubo. Tuttavia dopo aver creato la categora e la pagina “photoblog”, questa mi prende l’ultima entry ma il pulsante in basso “previous” non mi fa scorrere le altre entry della stessa categoria, non sai mica come si risolve?

  22. Roberto ha detto:

    finalmente ho trovato la soluzione a un grande impedimento che avevo sul mio blog. grazie mille per la chiarezza del tutorial

  23. Angelo ha detto:

    Grande guida!!! grazie mille

  24. Frab ha detto:

    anche io ho il problema con la navigazione interna tra i post…come è possibile risolvere?
    Comunque bel tutorial!

  25. Ventoh ha detto:

    Grazie per questo chiarissimo e preziossimo tutorial!

  26. gabriele ha detto:

    Io non riesco a capire cosa devo copiare. Il file index del tema o di wp? O forse si intende il file home?

  27. sabato83 ha detto:

    Ciao. Io ho seguito tutto il procedimento, ma quando vado a creare la pagina dal pannello di amministrazione, la sezione page template non esiste. Uso l’ultima versione di worpress, mi puoi aiutare?

  28. mirco ha detto:

    Ciao ..tutto perfetto, una sola domanda. Vorrei nella pagina che all’inizio mi scrivesse delle informazioni statiche e successivamente i posto della categoria appropriata.
    MI spiego meglio: ho 3 pagine A, B, C. Nella pagina A, all’inizio vi è la descrizione dell’azienda A e del prodotto, e poi ..magari diviso da una linea, i post relativi alla azienda A. Vale cosi per la B e per la C
    Grazie per l’aiuto
    Mirco

  29. Lonny ha detto:

    E’ possibile dopo aver fatto questa procedura visualizzare oltre ai vari post della categoria anche i contenuti inseriti nella pagina? (per avere quindi una descrizione della categoria)
    Grazie

  30. mirco ha detto:

    Grazie Lonny per aver messo in “italiano” quello che avevo in mente :)

  31. Manuel ha detto:

    Ciao, sapete dirmi come mai se uso questo metodo e vado sulla pagina poi per esempio faccio “Articoli più vecchi” per andare alla seconda pagina mi mostra sempre gli ultimi articoli inseriti e non quelli in seconda pagina? Grazie

Lascia un commento