Come gestire i database di WordPress

come gestire i database wordpress

Gestire i database WordPress è un’abilità che torna utile in molte situazioni, dalla migrazione di un sito alla gestione dei redirect generati dal CMS.

Ma prima di iniziare con la spiegazione, è bene fornire alcuni cenni di massima.

Cos’è un Database WordPress?

WordPress utilizza database MySQL per gestire i diversi elementi:

  • pagine
  • articoli
  • categorie
  • tag
  • commenti

Il miglior sistema per visualizzare il database WordPress è dotarsi di (o acquistare un’offerta dall’host che lo comprenda) phpMyAdmin, che permette di effettuare delle operazioni all’interno del database, tra cui:

  • esportare i dati
  • importare dati
  • utilizzare le queries SQL
  • verificare i plugin e il setting di MySQL.

In generale WordPress utilizza un unico database per gestire tutti i tipi di elementi, ma in alcuni casi potrebbe essere necessario crearne un secondo.

Database wordpress su phpMyAdmin

Sotto-dominio di un sito WordPress con un altro database

Ci sono molti motivi per avere bisogno di un altro database, uno di questi è la gestione di un tema grafico differente dedicato alla sezione indicata dal sottodominio.

Per risolvere questo problema è possibile installare una seconda istanza di WordPress dedicando uno specifico database per l’occasione.

In questo caso bisogna scaricare una copia di WordPress dal sito e copiarlo nella cartella definita da sotto dominio, per poi creare un database MySQL.

Il passaggio successivo è quello di modificare il file wp-config-sample.php aggiungendo il nome dell’user, la password e il nome del database.

A questo punto si potrà utilizzare questo spazio installando plugin e temi differenti dal sito base.

Due siti con lo stesso database?

Esiste un altro caso, molto più raro e meno utile ma sicuramente più curioso, in cui può essere necessario saper gestire il database WordPress.

Si tratta di gestire con un unico database due siti, con URL e domini differenti.

Se compiuto incautamente il lavoro può risultare dannoso a livello SEO, ma lo aggiungo perché non c’è limite all’inventiva.

Le operazioni da compiere sono:

  1. aggiungere una nuova table e nominarla wp_option2 e copiare tutte le informazioni contenute in wp_options
  2. nel secondo sito bisogna aggiungere define( ‘M7_OPTIONS_TABLE’, ‘wp_options2’ ); prima di if ( !defined(‘ABSPATH’) ) all’interno del file wp-config.php
  3. sempre sul secondo sito / installazione vai su wp-includes/wp-db.php e aggiungi alla public function tables, prima di if ( isset( $tables[‘users’] ) && defined( ‘CUSTOM_USER_TABLE’ ) )) il seguente codice: if ( isset( $tables[‘options’] ) && defined( ‘M7_OPTIONS_TABLE’ ) ) $tables[‘options’] = M7_OPTIONS_TABLE;
  4. Finita questa operazione sarà possibile cambiare il tema e i plugin del secondo sito, ma non i post o le tassonomie.

Nel caso di problemi con i link della seconda installazione, aggiungere nel file wp-config.php:

define('WP_HOME','http://seccond_website.com');
define('WP_SITEURL','http://seccond_website.com');

Puntare il database su una nuova installazione

Un caso sicuramente più pratico è il redirect degli URL di un database WordPress nel caso in cui si cambiasse nome dominio, per esempio.

Dopo aver copiato la vecchia installazione nel nuovo spazio (nel caso in cui ci fosse una migrazione) bisogna modificare i collegamenti dei file all’interno del database.

Per farlo inserire le seguenti queries:

UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldurl', 'http://www.newurl') WHERE option_name = 'home' OR option_name = 'siteurl'; 

UPDATE wp_posts SET guid = replace(guid, 'http://www.oldurl','http://www.newurl');

UPDATE wp_posts SET post_content = replace(post_content, 'http://www.oldurl', 'http://www.newurl');

UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://www.oldurl','http://www.newurl');
file wp-config.php di WordPress

Successivamente, bisognerà inserire nel file wp-config.php user, password e nome del nuovo database.

Come risolvere gli errori nel DB

Quando si effettuano operazioni di questa natura capita spesso di ritrovarsi con qualche errore.

Esiste una categoria di plugin che si occupa di risolvere questi problemi; in particolare WP-DBmanager ripara eventuali errori svuotando o riempendo tabelle, e crea manda in scheduling i backup che crea.

Sebbene sia uno strumento incredibilmente utile, non risolve tutti i problemi e molti problemi dei database WordPress richiedono un minimo di conoscenza della struttura.

Risolvere i problemi con i redirect di WordPress

WordPress, si sa, ha il brutto vizio di salvare internamente i redirect ogni qualvolta si cambia impunemente l’URL o lo slug di una pagina, di un articolo, di una categoria o di un tag.

In realtà questi Redirect 301 sono salvati all’interno di una zona specifica del database, che possiamo ripulire.

Per effettuare la pulizia basta utilizzare la query:

 DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug'; 
  • wp_postmeta è la tabella che contiene i redirect;
  • wp_old_slug sono i vecchi valori sostituiti;
  • meta_key la colonna in cui vengono salvati.

Nel caso non si vogliano cancellare tutti ma si voglia analizzare i dati prima di procedere in maniera capillare, basta inserire:

 SELECT * FROM wp_postmeta WHERE meta_key = '_wp_old_slug';  

In una seconda fase sarà possibile prelevare e cancellare direttamente l’elemento o gli elementi desiderati:

DELETE FROM wp_postmeta WHERE metavalue = 'slug da cancellare';

starstarstarstarstar4.67 / 3 voto / i

Related Posts

Se ti è piaciuto l'articolo, iscriviti alla Newsletter

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.