Sto impazzendo per spostare dei siti WordPress in una versione multisito, dove non solo sto usando un dominio temporaneo (xmau.com anziché xmau.com) ma ho anche tolto il /wp/ che stava nei miei file. Le operazioni da fare dipendono dalla grandezza del blog.
Premessa:
Andando sulla pagina https://xmau.com/wp/wp-admin/network/sites.php trovo tutti i blog che ho, e passando sopra con il mouse posso vedere il numero del sito. Lo stesso con https://xmau.com/wp-admin/network/sites.php .
Siti piccoli
Se il sito (esclusi i media) è meno di un megabyte, tipo Calendario, l’opzione più semplice è questa:
- Sul sito vecchio andare a Tools → Export
- Salvare tutto
- Scaricare il file
- Creare il blog sul sito nuovo
- Cancellare il post e la pagina create col sito
- Verificare che il tema sia presente
- Sul nuovo blog, Strumenti → Importa → WordPress, assegnando .mau. come autore
Siti più grandi
Se non funziona, occorre andare direttamente su sql.
- Dal sito vecchio,
mysqldump --user=UTENTE --password=PASSWORD DATABASE \
wpx_8_posts wpx_8_postmeta wpx_8_options \
wpx_8_terms wpx_8_term_relationships wpx_8_term_taxonomy \
wpx_8_comments wpx_8_commentmeta \
wpx_8_links \
> ~/DIRECTORY/subsite_8_.sql
dove _8_ è il numero del blog - Se i blog hanno indice diverso, cambio dati:
sed 's/`wpx_8_/`wpx_7_/g; s/wpx_8_/wpx_7_/g' ~/DIRECTORY/subsite_8_.sql > ~/DIRECTORY/subsite_7_new.sql
e verificare che sia tutto a posto:
grep -c 'wpx_8_' ~/DIRECTORY/subsite_7_new.sql - Scaricare il file
- Sul sito nuovo, cancellare tutto:
mysql --password=NUOVAPW --user=NUOVOUTENTE --database=NUOVODBDROP TABLE wpx_8_posts, wpx_8_postmeta, wpx_8_options,
wpx_8_terms, wpx_8_term_relationships, wpx_8_term_taxonomy,
wpx_8_comments, wpx_8_commentmeta, wpx_8_links; - caricare il file:
mysql --password=NUOVAPW --user=NUOVOUTENTE --database=NUOVODB --default-character-set=utf8mb4 < ~/DIRECTORY/subsite_8_new.sql - Cambiare il nome del sito:
mysql --password=NUOVAPW --user=NUOVOUTENTE --database=NUOVODBUPDATE wpx_8_options
SET option_value = ‘https://xmau.com/NOMEBLOG/’
WHERE option_name IN (‘siteurl’, ‘home’);
Media:
In ciascun caso bisogna copiare i media.
cd ~/web/wp/wp-content/uploads/sites/8
tar cvzf ~/private/NOMEBLOG-media.tgz .
Utente:
Se come capita a me sbaglia il numero di utente, da phpmyadmin si lancia UPDATE wpx_7_posts SET post_author = 1 WHERE post_author = 2; (a me viene sempre l’utente 2, non so perché)
Permalink
A volte si perdono. Andare in https://xmau.com/NOMEBLOG/wp-admin/options-permalink.php e salvare anche senza toccare nulla.
Cambio nome sito:
Nelle tabelle
wpx_options (sito principale)
wpx_sitemeta (impostazioni di rete)
wpx_blogs (domini dei siti secondari)
wpx_N_options per ogni sito secondario
wpx_N_posts per i contenuti con link interni
oltre che in wp-config.php c’è il nome del sito. Le modifiche da fare sono
UPDATE wpx_options
SET option_value = REPLACE(option_value, ‘temp.xmau.com’, ‘xmau.com’)
WHERE option_value LIKE ‘%temp.xmau.com%’;
UPDATE wpx_sitemeta
SET meta_value = REPLACE(meta_value, ‘temp.xmau.com’, ‘xmau.com’)
WHERE meta_value LIKE ‘%temp.xmau.com%’;
UPDATE wpx_N_options
SET option_value = REPLACE(option_value, ‘temp.xmau.com’, ‘xmau.com’)
WHERE option_value LIKE ‘%temp.xmau.com%’;
UPDATE wpx_N_posts
SET post_content = REPLACE(post_content, ‘temp.xmau.com’, ‘xmau.com’)
WHERE post_content LIKE ‘%temp.xmau.com%’;
UPDATE wpx_blogs
SET domain = REPLACE(domain, ‘temp.xmau.com’, ‘xmau.com’)
WHERE domain LIKE ‘%temp.xmau.com%’;