WordPress: Come Disattivare il Plugin di Manutenzione

A 'Do Not Enter' sign in a desolate desert setting under a bright sky.

Ti serve davvero un plugin per la schermata di manutenzione?
Certo, è facile installarlo e configurarlo, ma vuoi davvero appesantire il tuo sito solo per evitare di scrivere qualche riga di codice? Oggi vedrai come creare una modalità di manutenzione personalizzata, leggera e senza fronzoli, per rendere il tuo sito più veloce e performante.

Non preoccuparti, il processo è più semplice di quanto sembri, e alla fine avrai un controllo totale senza dipendere da plugin esterni! 🚀


Abilita la Modalità di Manutenzione per Tutti

Tre semplici righe di codice, aggiungile al file functions.php del tuo tema:

function maintenance_mode() {
  // Interrompe l'esecuzione di WordPress e mostra un messaggio
  wp_die('Shh... il sito sta riposando 😴, tornerà presto online.');
}
// Aggancia la funzione all'evento di inizializzazione
add_action('init', 'maintenance_mode');

Consenti l’Accesso agli Utenti Loggati

Adesso aggiungi poche righe ancora, permetti agli utenti loggati di accedere al sito ed ovviamente permettia a chi non è loggato di accedere alla pagina di login.

function maintenance_mode() {
  // Permettiamo l'accesso all'area di amministrazione e alla pagina di login
  if (is_admin() || $GLOBALS['pagenow'] === 'wp-login.php') {
    return;
  }
  
  // Se l'utente non è loggato, mostra la pagina di manutenzione
  if (!is_user_logged_in()) {
    wp_die('Shh... il sito sta riposando 😴, tornerà presto online.');
  }
}

add_action('init', 'maintenance_mode');
Ora, solo gli utenti non autenticati vedranno la modalità di manutenzione.

Abilita la Modalità di Manutenzione solo per Ruoli Specifici

Adesso probabilmente quanto fatto è sufficiente se il tuo sito non prevede che i lettori si registrino perché discrimini solo tra utenti loggati e non. Aggiungi un controllo sui ruoli per rendere il tuo codice adatto a tutte le esigenze.

WordPress permette di definire di creare funzioni differenziate basandosi sulle capabilities degli utenti. Puoi trovare l’elenco completo qui: WordPress Roles and Capabilities.

Nel seguente codice, solo gli utenti con il permesso di modificare i temi (tipicamente gli amministratori) potranno accedere al sito:

function maintenance_mode() {
  if (is_admin() || $GLOBALS['pagenow'] === 'wp-login.php') {
    return;
  }

  // Se l'utente non ha i permessi richiesti, mostra la pagina di manutenzione
  if (!current_user_can('edit_themes') && !is_user_logged_in()) {
    wp_die('Shh... il sito sta riposando 😴, tornerà presto online.');
  }
}

add_action('init', 'maintenance_mode');

Adesso che hai scoperto quanto è semplice aggiungere funzionalità personalizzate al tuo sito, cosa ne dici di portare il tuo codice fuori dal function.php e creare un vero e proprio plugin? Vai all’articolo dedicato: WordPress: Creare un plugin di Manutezione in pochi minuti

[ads_loop]