WordPress e Git

WordPress non è proprio fatto per lo sviluppo collaborativo. Per usare .git, vanno prese alcune precauzioni…Upload, cache, sitemap dinamiche e similari vanno tolti via .gitignore: gli upload, infatti, diventano subito obsoleti. Allo stesso modo, anche il file di configurazione, che contiene le informazioni sul database, può essere ignorato:

Il file .gitignore può essere fatto così:

# Esclude questi file dal repository di git
wp-content/backup/*
wp-content/cache/*
wp-content/upgrade/*
wp-content/uploads/*
sitemap.*
wp-config.php

Nella copia locale, si può far sì che gli upload mancanti vengano presi direttamente dal sito online, usando un redirect nel file .htaccess

wp-content/uploads/.htaccess

# Cerca di caricare i file dalla produzione se non sono nella versione locale

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) http://dominiodiproduzione.com/wp-content/uploads/$1

Evitare di aggiornare i plugin usando l’interfaccia di amministrazione, ma fare gli aggiornamenti (e le installazioni) nella copia di sviluppo e fare il commit, push e checkout in produzione. Il problema si ha quando ci sono più sviluppatori che aggiungono o aggiornano plugin, bisogna concordare le azioni per evitare che le varie copie di sviluppo si disallineinino. Una volta installati i plugin via file, si possono attivare nella copia di produzione in modo che facciano le relative modifiche al db.

Il database, invece, va periodicamente importato dal sito di produzione a quello di sviluppo, controllando che i plugin installati siano gli stessi