Mauro Ginelli

Usare WordPress come CMS: una piccola guida

Mi ero ripromesso di utilizzare WordPress come CMS (Content Management System) per tutti i contenuti presenti su questo sito. C’era infatti un’installazione di WordPress, collocata nella directory /blog del sito, mentre le altre pagine, nella root del sito, si appoggiavano a qualche rudimentale script php fatto in casa. Il motivo risiedeva nel fatto che le pagine “statiche” e il blog con WordPress erano stati pubblicati in due periodi di tempo separati e, trattandosi di un sito personale, senza tanti ragionamenti su quale strada fosse meglio seguire e quale piattaforma utilizzare.

Pur con poche pagine da gestire e pochi interventi nel blog (ha quattro anni, ma non li dimostra), il risultato era per nulla soddisfacente e richiedeva il doppio della fatica, a causa dei due sistemi separati. Ad esempio, per inserire una modifica qualsiasi nel codice di tracciamento di Google Analytics, bisognava intervenire sia sul blog, sia nelle pagine php. Da qui, la promessa di perdere un po’ di tempo per uniformare il tutto, sfruttando le funzionalità offerte da WordPress.

Dato che la transizione è ormai completata e tutto il sito è ora gestito dal motore di WordPress, semmai tornasse utile a qualcuno, ecco la trafila che ho seguito per usare WordPress come CMS.

Piccola premessa: questo post è stato scritto con riferimento ad un’installazione in lingua italiana di WordPress 2.8. Può darsi quindi che alcune voci di menu e/o impostazioni indicate non siano più valide o esistenti in futuro.

Modificare le impostazioni di lettura

Come già detto, l’installazione di WordPress su questo sito si trovava nella directory /blog. Il mio desiderio era di mantenere il flusso dei post allo stesso indirizzo e avere una homepage differente, con una pagina creata con WordPress.

WordPress consente questa opzione: basta andare, nel pannello di amministrazione, sotto Impostazioni -> Lettura, e indicare la pagina statica che verrà mostrata come homepage e la pagina in cui verranno pubblicati i post. Ecco uno screenshot.

Amministrazione WordPress: Impostazioni -> Lettura

Semplice, ma questa scelta avrebbe generato un problema, legato ai permalink e al file .htaccess. La pagina statica “blog”, se posizionata nella root (www.ginelli.it/blog), sarebbe coincisa con la directory di installazione di WordPress, causando problemi nella visualizzazione del blog stesso.

Modificare la cartella in cui è installato WordPress

Per risolvere il problema qui sopra, ho deciso di modificare il nome della cartella in cui è installato WordPress: da /blog a /wordpress. Probabilmente c’erano soluzioni più eleganti e professionali, ma questa mi sembrava rapida e senza rischi.

Modificare le impostazioni generali nel pannello di amministrazione di WordPress

Una volta ri-loggato nel pannello di controllo al nuovo indirizzo (non più /blog, ma /wordpress), è stata la volta della modifica dei parametri presenti sotto Impostazioni -> Generale. In questa pagina, sono presenti due voci, che solitamente coincidono:

Nel mio caso, vista la modifica già fatta e il punto di arrivo a cui volevo giungere, ho settato così:

Modificare i permalink

I permalink (v. nel pannello di WordPress: Impostazioni->Permalink) erano nel formato “Data e nome”. Se non avessi modificato questa impostazione, ora avrei avuto i post all’indirizzo www.ginelli.it/2008/03/14/esempio e non più www.ginelli.it/blog/03/14/esempio.

Ho quindi optato per i permalink  con “Struttura personalizzata”, inserendo i seguenti valori:

/blog/%year%/%monthnum%/%day%/%postname%/.

Aggiungendo “blog”, infatti, i post avrebbero mantenuto il vecchio indirizzo, mentre le altre pagine sarebbero rimaste direttamente dipendenti dalla root del sito. Ad esempio, www.ginelli.it/contatti e non www.ginelli.it/blog/contatti

Spostare i file index.php e .htaccess

A questo punto la cartella di WordPress è stata rinominata, le impostazioni sono sistemate, i permalink pure. È il momento di spostare i file index.php e .htaccess dalla cartella /wordpress a quella principale del sito. Una modifica al codice php del file index.php è però necessaria. La riga

require('./wp-blog-header.php');

deve diventare

require('./wordpress/wp-blog-header.php');

Interventi sul db per percorsi file e immagini

Spostati i file index.php e .htaccess, WordPress è diventato il CMS di tutto il sito, installato sotto /wordpress, mentre il blog è rimasto visibile al suo posto sotto /blog.

Il lavoro non è però ultimato: quando si usa l’editor di WordPress i percorsi delle immagini e degli altri elementi multimediali vengono inseriti nel database. Rinominando da /blog a /wordpress la cartella di installazione, si rende necessaria una bella istruzione SQL sul database per correggere i riferimenti sbagliati.

Ultimi ritocchi: le vecchie pagine statiche con redirect 301

Avendo importato i contenuti delle vecchie pagine php in WordPress, bisogna affrontare un’ultima piccola fatica. Le vecchie pagine php, già presenti negli indici dei motori di ricerca e magari nei bookmark di qualche navigatore, devono redirigere automaticamente alle corrispondenti pagine di WordPress. Ad esempio, la vecchia pagina /form.php è ora /contatti. Come fare?

La risposta si chiama “HTTP header 301”. Con php, le vecchie pagine statiche devono ora redirigere automaticamente alle nuove versioni, grazie alla funzione header(), come nell’esempio:

<?php
header('Location: http://www.sito.ext/nuova-destinazione');
?>

Buona migrazione a tutti!