Tornare a una versione di WordPress precedente su hosting economici senza disponibilità della console ssh

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?