Siti multiblog con WordPress
[Aggiornato il 25 agosto 2009]
Desiderate realizzare un sito familiare con tanti blog diversi, uno per ogni componente della famiglia? Oppure un sito scolastico, in cui ciascuna classe abbia il suo blog, indipendente dai blog delle altre classi? Oppure ancora un blog multilingue, in cui si possa selezionare la versione inglese o quella italiana o quella francese?
Se la risposta è sì, continuate a leggere questo articolo. WordPress consente di realizzare un solo blog per ogni installazione, perciò dovremo realizzare diverse installazioni sullo stesso sito, e trovare il modo di farle coesistere; ma non preoccupatevi, non è affatto difficile.
Passo 1
Per prima cosa occorre eseguire le installazioni desiderate, una per ciascun blog (o una per ciascuna lingua del blog multilingue). Ad esempio, supponiamo di voler installare un blog bilingue, inglese ed italiano: in questo caso occorre eseguire due installazioni.
Ciascuna installazione deve essere eseguita in una diversa cartella del nostro sito; nel nostro esempio, le due installazioni verranno eseguite rispettivamente in www.mysite.com/eng e www.mysite.com/ita. E’ possibile utilizzare lo stesso database MySQL per tutte le installazioni, specificando però un prefisso diverso per ciascuna installazione. Il file wp-config.php nella cartella eng conterrà:
$table_prefix = 'eng_';
mentre wp-config.php nella cartella ita conterrà:
$table_prefix = 'ita_';
Lanciamo le installazioni e, se tutto è andato bene, a questo punto avremo due blog separati e indipendenti: il primo sarà accessibile con l’indirizzo http://www.mysite.com/eng ed il secondo con l’indirizzo http://www.mysite.com/ita.
Passo 2
Adesso occorre collegare tra loro i due blog. Per questo useremo un widget di testo (text widget) inserito nella sidebar o in un’altra area del nostro tema predisposta per i widget.
Per configurare il widget inseriamo nel campo Title: il seguente testo:
Languages
e inseriamo nell’area di testo il seguente codice:
<ul> <li> <a href="http://www.mysite.com/eng">English</a> </li> <li> <a href="http://www.mysite.com/ita">Italiano</a> </li> </ul>
Il widget deve essere inserito nello stesso modo in entrambi i blog. Ovviamente invece di Languages, English, Italiano si può scrivere La nostra famiglia, Zio Giovanni, Zia Maria, secondo il caso.
Se tutto è andato bene, a questo punto avremo sempre i due blog indipendenti, ma con la possibilità di passare dall’uno all’altro attraverso i link che abbiamo appena inserito nella sidebar.
Passo 3
L’ultimo dettaglio consiste nel permettere l’accesso al nostro sito anche a chi non conosce i nomi delle cartelle, eng e ita, che abbiamo utilizzato per le due installazioni.
Basta creare, nella cartella principale www.mysite.com, un file index.php con il seguente contenuto:
<?php
define('WP_USE_THEMES', true);
require('./eng/wp-blog-header.php');
?>
se volete che i visitatori entrino direttamente nel blog eng, oppure:
<?php
define('WP_USE_THEMES', true);
require('./ita/wp-blog-header.php');
?>
se volete che i visitatori entrino invece direttamente nel blog ita.
Se poi preferite che la selezione sia fatta automaticamente, in base alla lingua impostata nel browser di ciascun visitatore, usate:
<?php
define('WP_USE_THEMES', true);
if (substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2) == "it")
require('./ita/wp-blog-header.php');
else
require('./eng/wp-blog-header.php');
?>
Così il visitatore si troverà a visitare il blog ita se la sua lingua è l’italiano, altrimenti si troverà a visitare il blog eng.
Conclusioni
Spero che questo articolo vi sia utile e, se vi occorrono chiarimenti, non esitate a scrivermi un commento.
A proposito: per gestire un sito bilingue come quello del nostro esempio, dovrete inserire due volte i vostri articoli. In particolare dovrete inserire la versione inglese nel blog eng, e la versione italiana nel blog ita. Pensavate forse che WordPress vi facesse la traduzione automatica?
A presto!

Posted March 27, 2006
Comments: 26
Gent.mo Andrea,
trovo molto utile l’articolo che hai postato, sei stato l’unico che si è avvicinato al mio problema, ma non l’hai risolto del tutto.
Io vorrei realizzare per ogni utente che si registra nel mio sito un blog che verrà gestito direttamente dall’utente stesso.
Io ad es. sono l’amministratore (che inst. il blog e stabilisce i permessi)mentre l’utente (che si è registrato nel mio sito) potrà solo cambiare l’aspetto del blog, creare pagine e inserire commenti (decido io il livello).
Cosa mi conviene fare?
Fare un installazione per ogni utente e cambiare i suffissi per ogni utente/tabella o c’è qualche altro metodo?
Prevedo che gli utenti sono molti per cui ho paura che non riuscirò a gestirli nel momento in cui esce un aggiornamento o voglio applicare una piccola modifica a tutti i blog.
Ti ringrazio anticipatamente di una tua risposta,
(se puoi rispondimi anche tramite e-mail)
grazie,
Alfio.
Ciao Alfio,
penso che WordPress MU (multi user) sia quello che fa per te. Non l’ho provato personalmente, ma dalla documentazione sembra rispondere perfettamente a quello che cerchi. Lo trovi qui:
http://mu.wordpress.org/download/
Ciao e buon lavoro!
Sarebbe interessante sapere anche come poter visualizzare nel blog X i post presenti nel DB Y…
Thanks
Ehm .. è una domanda troppo difficile per le mie attuali conoscenze. Forse qualche altro lettore saprebbe rispondere? Oppure puoi provare a chiedere lumi nel forum di Wordpress Italy: http://www.wordpress-it.it/forum.
Ciao!
Ciao..ho una domanda. Io ho gia il mio sito, al quale pero vorrei aggiungere proprio le caratteristiche che hai descritto in questo articolo. Come faccio a fare tutto ciò partendo dall’installazione che già ho..? Spero di essere stato chiaro…
…o meglio..se nella root del dominio creo una cartella “eng” e li faccio una nuova installazione per la versione inglese del blog va bene lo stesso?
Ciao Lorenzo,
nessun problema se hai già il sito “italiano” e vuoi aggiungere quello “inglese”. Ti basta, come hai giustamente ipotizzato, creare una nuova cartella “eng” e fare lì la seconda installazione. Dopo di che puoi applicare tutte le istruzioni dell’articolo, ricordando che il blog italiano si chiamerà “http://www.mysite.com” e quello inglese si chiamerà “http://www.mysite.com/eng”.
Ciao e buon lavoro!
Chiedo scusa. Io ho un problema con l’installazione.
Il problema risiede nel file wp-config.php!
Dove devo inserire precisamente la stringa:
$table_prefix = ‘ita_’; // example: ‘wp_’ or ‘b2′ or ‘mylogin_’ ?
Mi capita che salvando il file wp-config l’apice che segue”b2″ mi viene sostituito con un altro simbolo.
Sarà quello il problema?
Ciao Antonio,
nel file wp_config.php c’è una sola riga che inizia con $table_prefix, devi modificare quella come descritto nell’articolo. In realtà le parti dopo // sono commenti, e possono essere ignorate, perciò ti basta scrivere:
$table_prefix = ‘ita_’;
Infine per evitare problemi con i caratteri assicurati di usare sempre un semplice editor di testo, ad esempio Notepad su Windows, e non altri programmi di redazione di documenti come Microsoft Word.
Buon lavoro!
Ok. grazie mille
Sto iniziando a sviluppare un sistema multilingue basato su WP diversi, provate a vedere se l’idea è interessante.
http://www.emanueleferonato.com/ita/2006/05/26/wordpress-in-due-o-piu-lingue/
OK, ci do un’occhiata volentieri e ti faccio sapere. Ciao!
Ciao..ho fatto in locale un sito multilingue. Nella root della prima installazione ho creato una cartella “eng” dove ho fatto la seconda installazione. Fin qui tutto ok..Una domanda: a che pro usare lo stesso db Mysql per entrambi i blog? Se invece creo un nuovo database per il blog “eng” cosa perdo e cosa ci guadagno?
Ciao Lorenzo,
in effetti non ci sono particolari motivi per usare lo stesso database. A volte si ha un solo DB a disposizione (e in questo caso la scelta è obbligata), oppure può essere comodo fare i backup di un solo DB invece che di due. Per il resto non vedo differenze che possano influire sulla decisione. Ciao!
Ciao Andrea..una domanda. Se volessi mantenere le stesse caratteristiche grafiche che ho già ottenuto modificando il thema che ho sul mio blog anche sulla seconda installazione..come devo fare? Nel senso..uso il tema Kubrick che ho modificato a mio piacimento. Vorrei quindi che quelle stesse caratteristiche che ho sulla prima installazione rimanessero anche sulla seconda e naturalmente sul tema. Riscriverle dall’inizio mi sembra un lavorone…Suggerimenti?
Ciao Lorenzo.
WordPress al momento non consente di condividere temi tra più installazioni, ma non è difficile aggirare questo ostacolo.
Per prima cosa occorre salvare da qualche parte la cartella completa del tema che hai modificato (ad esempio con FTP puoi scaricarti la cartella sul tuo PC di casa).
A questo punto, sulla seconda installazione, puoi rinominare o cancellare la cartella del tema Kubrick e, sempre con FTP, fare upload della cartella del tema modificato.
Questo dovrebbe essere sufficiente. Ovviamente se modificherai ancora il tuo tema, dovrai ripetere la procedura.
ciao,
ho da poco messo su http://www.BlogsNotes.com che gira su WP MU, nel caso dobbiate testarlo o comunque utilizzarlo, no problem !
PS visto che in Italia è ancora un po’ in fase di test e non ci sono delle buone guide, ogni commento ed aiuto è il benAccetto !
Grazie 1000
mario
Tutto ciò ha un suo risultato ma relativo al suo modo molto maccheronico di raggiungerlo, poco ma sicuro credo!
il codice per reindirizare la pagina può essere scritto in wp 2.5 nei rispettivi index delle due cartelle ?
Io scrivo qlcs del genere
Dove “blog” è la cartella in cui sta wp italiano e l’altra è quello in inglese.
Da premettere che questo codice l’ho piazzato su index.php della cartella wp inglese
In questo modo però non mi funziona … help pls
Ciao Leelo,
come vedi il codice che hai inserito nel commento si è perso .. se preferisci puoi inviarmi una mail.
Ciao.. sto costruendo un’altro blog in wordpress e le tue informazioni mi sono molto utili ma ho riscontrato dei problemi..
Ho fatto la doppia installazione.. ed ho inserito nelel sidebar il codice sopra.. ma quando clikko sui link mi da il seguente errore:
http://www.mysite.com/it/�http://www.mysite.com/eng�
e rispettivamente:
http://www.mysite.com/it/�http://www.mysite.com/ita�
Inoltre, ho anche problemi al punto 3. Ho infatti inserito il file index nella cartella principale (public.html).. e mi da il seguente errore:
Parse error: syntax error, unexpected ‘/’ in /home/XXXX/domains/mysite.com/public_html/index.php on line 3
Ciao SaraMago,
scusa il ritardo nella risposta. Avrei bisogno di guardare il sito, puoi mandarmi il link?
Ciao, attenzione a quando copiate il codice direttamente dalla pagina web. Può capitare che le virgolette e gli apici non siano correttamente codificati.
Esempio:
require(’./ita/wp-blog-header.php’);
apici sbagliati e causa errore php di saraMago…
require(‘./ita/wp-blog-header.php’);
apici corretti…
Vi consiglio di incollare il testo nel blocco note e di riscriverli.
Ciao.
Ciao Xeno,
in effetti WordPress modifica gli apici presenti nel testo e quindi rende rischioso il copia – incolla.
Grazie della segnalazione!
Ciao a tutti
una domanda mi sovviene … ma gli utenti?
La registrazione al blog dovrebbe essere singola e dovrebbero poter commentare tutti post di tutte le installazioni senza dover fare la registrazione per il blog in italiano e una per il blog in inglese, e NON dover neanche fare un login differente per poter postare …
Cosa mi dici?
L’osservazione è corretta ma, nella maggioranza dei casi, ci si può aspettare che ciascun utente segua una sola lingua. Se dovesse seguirne più di una, in effetti avrebbe lo svantaggio di doversi registrare più volte e fare un login diverso per ciascuna diversa lingua.
In alternativa, è possibile non richiedere nè la registrazione nè il login, come avviene su dontdream.it.