Come riportare indietro la versione di WordPress nella maniera più semplice ed efficace possibile su un hosting che non mette a disposizione ssh, cli e altri strumenti avanzati.
Sei in questa scabrosa situazione? Il tuo hosting di quattro spicci non ti consente di lanciare comandi, usare la wp-cli, accedere via ssh e cose varie? Nessun problema ragazzo, non sei il solo.
L’idea dietro la soluzione che ti vado a esporre è creare un file php che possa essere invocato da browser (andando per esempio su miosito.com/miofile.php).
Tale file conterrà una serie di comandi in grado di riportare il tuo wordpress indietro ( o avanti ) alla tua versione preferita.
In questa casistica dovevo tornare a WordPress 6.7, perché l’aggiornamento aveva creato non pochi problemi.
Pertanto, ecco il file:
<?php
// Imposta l'header per evitare timeout del browser
set_time_limit(0);
header('Content-Type: text/plain');
// Percorso del file wp-cli.phar
$wpCliPath = __DIR__ . '/wp-cli.phar';
try {
// Scarica WP-CLI se non esiste già
if (!file_exists($wpCliPath)) {
echo "Scaricamento di WP-CLI...\n";
$downloadCommand = "curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar";
exec($downloadCommand, $output, $returnVar);
if ($returnVar !== 0) {
throw new Exception("Errore durante il download di WP-CLI.\n" . implode("\n", $output));
}
// Verifica che il file sia stato scaricato
if (!file_exists($wpCliPath)) {
throw new Exception("Il file wp-cli.phar non è stato scaricato correttamente.");
}
echo "WP-CLI scaricato con successo.\n";
} else {
echo "WP-CLI già presente.\n";
}
// Rende il file wp-cli.phar eseguibile
chmod($wpCliPath, 0755);
// Comando per aggiornare WordPress alla versione 6.7
echo "Aggiornamento di WordPress alla versione 6.7...\n";
$updateCommand = "php $wpCliPath core update --version=6.7";
exec($updateCommand, $output, $returnVar);
if ($returnVar !== 0) {
throw new Exception("Errore durante l'aggiornamento di WordPress.\n" . implode("\n", $output));
}
echo "WordPress aggiornato con successo alla versione 6.7.\n";
} catch (Exception $e) {
// Gestione degli errori
echo "Errore: " . $e->getMessage() . "\n";
}
?>
Ti basterà salvare il file nella root del sito e invocare il file attraverso la url.
Figo no?