Personalizzare i Permalink di WordPress

Nota: Questo articolo è la traduzione in italiano di Advanced Customization of WordPress Permalink Structure il quinto di una serie di post pubblicati su blogHelper che spiega come trasformare WordPress in un sistema di gestione di contenuti. La traduzione viene pubblicata qui con il permesso dell’autore: Ang Zhuu Ming.

* * *

Se hai seguito l’articolo precedente della serie “Usare WordPress come un CMS“, dovresti già essere in grado di impostare questa struttura di Permalink:

  • Home Personalizzata: http://tuosito.com/
  • Home Page del Blog: http://tuosito.com/blog/
  • Articoli del Blog: http://tuosito.com/blog/titolo-post/
  • Categorie del Blog: http://tuosito.com/blog/categoria/nome-categoria/
  • Archivio Mensile del Blog: http://tuosito.com/blog/2006/08/

Queste impostazioni però possono essere migliorate. Ad esempio, vogliamo creare – usando le Pagine – una sezione Articoli indipendente dal normale ordine cronologico inverso del Blog e con una sua struttura di Permalink.
Andiamo in Amministrazione > Gestione > Pagine. Questa è la struttura che ci interessa:

WordPress Manage Pages

I Permalink di questa struttura dovrebbero essere questi:

  • Indice Articoli: http://tuosito.com/articoli/
  • Le Categorie: http://tuosito.com/articoli/introduzione/
  • Gli Articoli nelle Categorie: http://tuosito.com/articoli/introduzione/economia/

Ora abbiamo una Home Page Personalizzata, un Blog con il suo ordine cronologico inverso ed una sezione Articoli strutturata in maniera gerarchica. Volendo, possiamo anche aggiungere altre sezioni, per esempio delle FAQ seguendo l’esempio sopra riportato.

Ma se volessimo aggiungere al nostro Blog un’altra sezione per le Notizie che segua un ordine cronologico? Per fare questo possiamo usare il sistema degli Articoli e possiamo fare in modo di avere una struttura di Permalink simile a quella usata per le pagine:

  • Indice Notizie: http://tuosito.com/notizie/
  • Categorie Notizie: http://tuosito.com/notizie/categoria/titolo-categoria/
  • Singole Notizie: http://tuosito.com/notizie/titolo-notizia/

Un sistema semplice per ottenere una cosa del genere è cambiare la struttura dei Permalink sfruttando il tag /%category%/ in questo modo:

/%category%/%postname%/

Poi creiamo due nuove Categorie: Blog e Notizie (se ci servono altre sezioni ordinate cronologicamente, possiamo creare altre Categorie). Una volta create le Categorie, ci assicuriamo che abbiano un ID basso perché, nel caso di Articoli assegnati a più categorie, il tag /%category%/ usato nei Permalink degli Articoli seleziona sempre la Categoria con l’ID più basso.
Ora, tutto quello che dobbiamo fare è scegliere una di queste categorie (Blog o Notizie) quando scriviamo un articolo, e il permalink del nuovo articolo visualizzerà automaticamente /blog/ o /notizie/ prima del permalink del titolo.

Attenzione: se vogliamo rimuovere le due voci Blog e Notizie dal menu delle Categorie, possiamo usare il parametro di esclusione del marcatore wp_list_cats() (o il suo equivalente nella funzione list_cats()).

Questo è tutto. Lo svantaggio principale di questa soluzione è che i permalink degli archivi delle categorie e dei mesi non funzionano né in /blog/, né in /notizie/ a meno che non vengano modificate le regole di riscrittura.
Puoi scegliere una sola directory, corrispondente a quella che hai impostato per la pagina principale del blog nelle Opzioni del plugin Filosofo Home Page Control (se n’è parlato nall’articolo precedente).
E anche se vai a modificare le regole di riscrittura, WP non è programmato per visualizzare strutture di archivio diverse. Perciò non è proprio possibile avere due archivi distinti, uno per le Notizie e un altro per il Blog, anche se potresti simulare delle categorie multiple usando le sotto-categorie e le regole di riscrittura.

Gli altri articoli della serie

  1. Usare WordPress come un CMS
  2. 5 ragioni per usare WordPress come un CMS
  3. 5 ragioni per non usare WordPress come un CMS
  4. Creare una Home Page personalizzata in WordPress