In questa breve guida vi illustrerò come disabilitare le revisioni dei post e quindi ridurre le dimensioni del database. WordPress è davvero ricco di funzioni e tools ma questa non è tra le mie preferite.
Se anche voi come me non utilizzate questo tool allora la cosa migliore da fare è quella di disabilitarlo in modo da alleggerire anche il nostro database mysql. Molti servizi di hosting condiviso non sono molto generosi con le dimensioni dei database quindi disabilitare le revisioni dei post potrebbe tornarci utile.
DISABILITARE LE REVISIONI DEI POST – METODO SEMPLICE
La procedura da seguire è molto semplice. Utilizzando un client FTP come Filezilla portiamoci sulla root del nostro sito e scarichiamo in locale il nostro file wp-config.php
Aprite il file con l’editor php che usate quotidianamente e aggiungete queste 2 righe di codice:
define('AUTOSAVE_INTERVAL', 300 ); // seconds
define('WP_POST_REVISIONS', false );
Nel dettaglio: la prima riga serve a definire dopo quanti secondi verrà effettuato il salvataggio automatico del nostro post ( wordpress di default effettua il salvataggio ogni 60 secondi, io preferisco impostarlo a 300, quindi ogni 5 minuti ); la seconda riga invece serve per disabilitare le revisoni dei post.
Vi consiglio di aggiungere queste righe all’inizio del file wp-config.php subito dopo i commenti iniziali, sembra infatti che inserendole alla fine del file queste, in alcune installazioni, vengano ignorate.
Da questo momento quindi le revisioni non verranno più registrate. Tuttavia se volessimo cancellare quelle che sono state salvate in precedenza dovremmo accedere al nostro database mysql attraverso l’interfaccia di gestione phpmyadmin e quindi eseguire questa query SQL:
DELETE FROM wp_posts WHERE post_type = "revision";
Il codice sopra riportato non funzionerà nel caso in cui abbiate scelto di utilizzare un prefisso per le tabellde del database diverso da quello di default. In tal caso il codice va coretto sostituendo wp_ con il prefisso delle vostre tabelle.
DISABILITARE LE REVISIONI DEI POST – METODO COMPLETO
Leggendo in giro per la rete sono finito su un articolo di Ashfame nel quale spiegava come il metodo sopra illustrato fosse un po’ superficiale e non ingrado di debellare completamente tutte le tracce delle revisioni dei post salvate nel database.
Ashfame suggerisce di eseguire la seguente query:
DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision';
tuttavia sembra che anche in questo modo rimanga qualche traccia. Quindi il metodo definitivo consiste nel creare un file php da caricare nella root di wordpress. All’interno verrà inserito un loop che andrà ad estrapolare tutte le revisioni e andrà ad eliminarle mediante la funzione wp_delete_post.
<?php
require_once('wp-load.php');
$posts = get_posts('post_type=revision&post_status=any&numberposts=-1');
foreach($posts as $post)
{
echo "{$post->post_title}\n";
wp_delete_post($post->ID,true);
}
?>
Eseguendo il file con il browser verrà mostrato un elenco delle revisioni eliminate.
LIMITARE LE REVISIONI DEI POST
Se volessimo mantenere la funzione possiamo limitare il numero di revisioni che vengono immagazzinate nel nostro database andando ad inserire la seguente stringa nel file wp-config.php
define( 'WP_POST_REVISIONS', 5 );