WordPress: Come creare una rete di siti?

In questo articolo vedremo un’utile e poco conosciuta caratteristica di WordPress: l’installazione network o multisite (MU). L’installazione network permette di gestire un numero indefinito di siti tramite un’unica installazione di WordPress. Questi siti avranno poi “vita propria”.
Temi diversi, plugin diversi, utenti diversi, impostazioni diverse; ma un unico core e un unico database.

Si può fare un parallelismo con un computer che pur montando un solo sistema operativo, può gestire diversi account, con diverse configurazioni.

A partire dalla versione 3.0, questa caratteristica é supportata nativamente da WordPress (prima era disponibile una versione separata), bisogna solo attivarla.

Quali applicazioni può avere l’installazione network?

Le applicazioni sono molteplici; proviamo ad immaginare un paio di situazioni.

  • Sei uno sviluppatore di temi WordPress; per ogni tema sviluppato vorresti mostrare la live preview. Se disponi di un’installazione network sarà sufficiente creare un nuovo sito ed installare il tema che intendi mostrare senza dover installare xx volte WordPress.
  • Sei Pikadilly e gestisci una quindicina di blog. E’ veramente più comodo farlo con il sistema network.

Quali vantaggi ha un’installazione network?

Vediamo alcuni vantaggi di un’installazione network di WordPress:

  • Razionalità: Non è razionale installare una copia di WordPress ogni volta che ci serve WordPress. 10Mb di files e un database sprecati ogni volta; questo sarebbe il risultato.
  • Mantenibilità: Con un’installazione network devi eseguire una sola volta gli aggiornamenti; se c’é un problema lo dovrai risolvere una sola volta.
  • Gestione: Grazie al ruolo di amministratore di rete puoi gestire tutti i siti direttamente senza doverti loggare a ciascuno di essi. Puoi anche decidere chi vede cosa e chi può disporre di cosa.

Ma adesso iniziamo?

Puoi lavorare su una nuova installazione di WordPress oppure su un sito già esistente e in produzione (in questo caso ti consiglio chiaramente di fare un backup dei files e del database).
La prima cosa che faremo è creare la cartella blogs.dir all’interno della cartella wp-content. Questa cartella sarà utilizzata da WordPress per salvare le immagini caricate, dunque dovrà essere scrivibile.

Ora editiamo il file wp-config.php ed aggiungiamo questa riga di codice prima del commento che dice “Finito, interrompere le modifiche!”

define('WP_ALLOW_MULTISITE', true);

Ora accediamo come amministratore (se eri già connesso fai il logout e riconnettiti).
Nel menù Strumenti è ora presente la voce Configurazione della rete; clicchiamo su quella voce.

Visualizzeremo una finestra come questa:

Nei dettagli della rete, la prima voce dice “Installazione in sotto-directory”. In locale è l’unico tipo di installazione possibile, mentre in remoto si può scegliere di utilizzare i sotto-domini. Tuttavia questa procedura è piuttosto complessa e rinuncio a descriverla.
Installare in sotto-directory significa che i sotto-siti avranno questa forma:

www.sito.com/sottosito1

In realtà, creando un nuovo sito non verrà creata nessuna directory; il tutto viene gestito con l’url rewrite.

L’indirizzo email dell’amministratore corrisponde all’utente che vogliamo impostare come l’amministratore della rete (super-admin).

Procediamo pure con l’installazione. A questo punto apparirà a video questa finestra.

Bene, adesso eseguiamo quanto richiesto:

  • Copiamo l’elenco di costanti nel file wp-config.php nel punto dove in precedenza avevamo già aggiunto la costante WP_ALLOW_MULTISITE.
  • Sostituiamo il contenuto del file .htaccess (o se non esiste creiamolo) con le regole indicate nel punto 3 della figura mostrata sopra.
  • Eseguiamo il logout e riconnettiamoci.

Adesso il nostro WordPress è in modalità multisite

Ma apparentemente non è successo nulla se escludiamo che nel menù bacheca è comparsa la voce i miei siti (e che oltretutto questa voce sembra non servire a molto).

Ma se clicchiamo in alto a destra, proprio dove c’è scritto Salve [utente], ecco che…

Da qui abbiamo accesso alla modalità di amministrazione della rete con i suoi menù specifici.

Come creare un nuovo sito con WordPress multisite?

Beh, è semplicissimo: dal menù Siti, scegliamo la voce aggiungi nuovo.

È sufficiente indicare il nome della sotto-cartella (virtuale), il titolo e l’email dell’amministratore di questo sito. L’email può corrispondere a quella di un utente già registrato, oppure anche ad un nuovo utente, in questo caso al nuovo utente sarà inviata un’email dal sistema con i dati di autenticazione e l’utente sarà creato automaticamente.

Ora abbiamo due siti completamente indipendenti tra di loro:

www.miosito.com
www.miosito.com/sottosito1

Come gestire i temi e plugin?

Come rendere disponibile un tema per la rete?

L’amministratore di un sito non ha la facoltà di installare un nuovo tema né di editarlo.
È  infatti l’amministratore di rete l’unico a poter eseguire questa operazione.
Una volta caricato il tema dovrà anche attivarlo per la rete. In questo modo sarà disponibile in tutti i sotto-siti.

Come rendere disponibile un plugin per la rete?

Anche i plugin possono essere installati unicamente dall’amministratore di rete.
In questo caso però, i plugin saranno disponibili in tutti i siti del network e i vari amministratori potranno decidere se attivarli o meno. Se invece l’amministratore di rete dovesse scegliere l’opzione attiva rete, il plugin sarà attivo in tutti i siti senza possibilità di essere disattivato singolarmente.

Ora non voglio dilungarmi troppo nel presentare tutte le funzionalità della gestione multisito in quanto, una volta installato è tutto molto intuitivo; basterà “giocarci” un po’ per capirlo perfettamente. Ma prima di concludere…

Diamo uno sguardo al database

Se ti occupi anche di sviluppo è importante comprendere come il multi-site viene gestito a livello di database.
Alla creazione di un nuovo sito, WordPress genera delle nuove tabelle per i post, i commenti, ecc.. modificando il prefisso da wp_ a wp_n_ (dove n sarà un numero progressivo che indica l’id del sito).

Come puoi vedere, vengono create delle nuove tabelle per gestire i contenuti dei nuovi siti. La tabella che gestisce gli utenti invece è una sola. Questo perché un utente può essere abilitato su diversi siti. Le relazioni tra utenti e siti sono gestite dalla tabella wp_usermeta.

A livello di programmazione, la corretta gestione dei prefissi delle tabelle è affidata alle database API di WordPress. Se ad esempio in sotto-sito1 stampassimo a video.

$wpdb->users
$wpdb->posts

otterremmo

wp_users
wp_2_posts

Conclusione

Come hai potuto vedere, l’installazione di WordPress in modalità multisite è relativamente semplice e presenta numerosi vantaggi.
Il back-end amministrativo è molto intuitivo e permette di gestire la rete di siti senza problemi assegnando diverse configurazioni ai sottositi.
Conoscevi questa caratteristicha di WordPress? L’hai già utilizzata? In che circostanza?

Tag: ,

L'autore

Maurizio è sposato con la triade PHP - MySql - Apache e, non pago, ha un'amante chiamata jQuery. Ha un blog dove cerca di descrivere nei minimi particolari sia la moglie che l'amante. La sua vera specialità è la realizzazione di gestionali complessi anche se non rifiuta mai un sito web. +

Sito web dell'autore | Altri articoli scritti da

Articoli correlati

Potresti essere interessato anche ai seguenti articoli:

138 commenti

Trackback e pingback

  1. Articoli della settimana 18/12/2011 | Saverio Gravagnola
    [...] Come creare una rete di siti? (Your Inspiration [...]
  2. » Blog multilingue con Wordpress
    [...] [...]