Best practice per sviluppare siti web con WordPress

Se state sviluppando, come nella maggior parte dei casi, per un cliente,è cruciale che quest’ultimo possa seguire le fasi di sviluppo del proprio sito.
Uno sviluppo in locale, ovvero sulla macchina di produzione senza accesso al web, implica spesso inviare layout, screenshots e l’impossibillità da parte del cliente di testare le funzionalità dinamiche. Può anche andare bene, ma in un ristretto numero di casi. Inoltre, implica un surplus di lavoro che può essere facilmente evitato.
La best practice, il miglior modo di procedere, in questi casi è il seguente.
Innanzitutto creare un’area privata all’interno di un proprio spazio web. Ad esempio, nel caso di un’ipotetica area di sviluppo dell’altrettanto ipotetica azienda “ACME”, si può utilizzare una cartella del tipo: www.acme.com/prova, in cui avremo cura di impedire l’accesso ai motori di ricerca.
Possiamo farlo via robots.txt, aggiungendo al nostro file le due righe necessarie:
User-agent: *
Disallow: /prova/ (attenzione allo “/” finale)
Supponiamo ora che il cliente si chiami “mario rossi ed associati”. Apriremo una cartella www.acme.com/prova/rossi in cui installeremo WP.
Nel file config.php avremo cura di dare un nome univoco alle tabelle del DB. Nel nostro esempio, la riga di definizione delle tabelle in questione diventerà:
$table_prefix = ‘wprossi_’;
o similia.
A questo punto installiamo wordpress accedendo all’home page (ovvero www.acme.com/prova/rossi).
Le tabelle verranno aggiunte al DB con prefisso “wprossi” e quindi chiaramente distinte da quelle di altri siti, e procediamo con lo sviluppo, fase durante cui potremo dialogare anche in modo diretto ed in tempo reale con il cliente, dato che avremo avuto cura di inviarlgi il link all’area di sviluppo.
Al termine, ovvero quando siamo pronti ad installare e andare in linea, sarà sufficiente effettuare il backup completo della root del cliente dall’area di prova e di tutte le sottocartelle, con il nostro client FTP, per avere il salvataggio completo di tutta l’area web.
Poi, utilizzando PHPMyAdmin o simili, faremo accesso al DB, esportando solo le tabelle con prefisso “wprossi”, in un file compresso con uno dei vari metodi a disposizione.
A questo punto, sul sito definitivo del cliente, andiamo a caricare direttamente via FTP il salvataggio effettuato dall’area di sviluppo, avendo cura di scrivere i parametri corretti relativi al DB del cliente nel file config.php. e facciamo lo stesso con il database MySQL, importando il file compresso contenente le tabelle esportate.
Dal pannello di controllo PHPMyAdmin del cliente, andiamo a sostituire i due valori fondamentali nella tabella delle opzioni (nel nostro caso: wprossi_options): ovvero il valore “option_value” delle righe intitolate “site_url” e “home”, in cui andremo a scrivere direttamente l’url della home directory reale del cliente.
A questo punto, semplicemente facciamo accesso alla bacheca del nostro sito appena caricato, installiamo il plugin “search and replace” o simili (ne esistono di diversi, anche migliori) e provvediamo a sostituire nel db ogni occorrenza della stringa “www.acme.com/prova/rossi” con quella reale del cliente “www.rossi.com”.
Una volta effettuata la sostituzione, dovremo andare a modificare a mano eventuali pathname hard-coded nel tema, che però solitamente sono pochissimi, e anche quelli eventualmente inseriti nei plugin, se li abbiamo personalizzati in qualche modo.
Ultimo atto, andiamo nella bacheca di wordpress alla voce “Impostazioni — Permalink” e clicchiamo su “Salva”, forzando la rigenerazione di htaccess e delle opzioni relative ai permalink.
A questo punto il nostro sito sarà perfettamente funzionante ed in linea. Provvediamo a rinominare sul nostro spazio web l’area di prova del cliente, aggiungendo, ad esempio, un suffisso “old” alla cartella di root; nel nostro caso, www.acme.com/prova/rossi diventerà quindi www.acme.com/prova/rossiold. Controlliamo che il sito del cliente non dia degli errori 404 not found (dovuti probabilmente a qualche link che non abbiamo aggiornato).
Se tutto è ok possiamo cancellare definitivamente l’area temporanea e le tabelle dal database.
Effettuiamo un ultimo backup dell’area web del cliente via FTP e del database MySQL direttamente dal pannelo di controllo PHPMyAdmin e archiviamo il tutto.
Operazione terminata in massima sicurezza.