Attivare il WordPress Classic Editor: basta 1 sola riga

Close-up shot of vintage typewriter keys in black and white, highlighting classic technology.

WordPress ha rilasciato l’editor Gutenberg alcuni anni fa come sostituto del Classic Editor. Personalmente, non trovo l’editor nuovo così negativo, ma capisco che molte persone possano preferire un editor più tradizionale, e più semplice da utilizzare, per modificare i propri contenuti.

Ho lavorato su molti siti WordPress e non è raro imbattersi in plugin che abilitano il WordPress Classic Editor. Così, ho dato un’occhiata alla directory dei plugin e sono rimasto sorpreso nel vedere che i più popolari contano oltre 5 milioni di installazioni attive.

Ora, suppongo che una grande parte di questi milioni di utenti voglia disabilitare Gutenberg per tutti gli utenti di WordPress. Vediamo cosa ti serve per farlo senza utilizzare alcun plugin.


Abilita il WordPress Classic Editor

Alla fine del file “functions.php” del tuo tema, aggiungi il seguente codice:

add_filter('use_block_editor_for_post', '__return_false', 10);

…e questo è tutto.

Ovviamente puoi decidere ci creare un plugin ad hoc, segui la guida realizzata nell’articolo per la creazione del plugin di manutenzione, la base del plugin è sempre la stessa cambia solo il codice php.

Complichiamo un po’ le cose?


Abilita il Classic Editor solo per gli utenti non amministratori

Ti basta inserire il codice precedente in una condizione che verifica la capacità dell’amministratore.

// L'utente corrente può modificare i temi, quindi è un amministratore
if( !current_user_can('edit_themes')){ 
  add_filter('use_block_editor_for_post', '__return_false', 10);
}

Con tre righe hai rimpiazzato un plugin utilizzato in milioni si siti web. Facciamo ancora un piccolo sforzo? Diamo all’utente la possibilità di scegliere in autonomia quale editor usare. Le cose potrebbero complicarsi un po’, ma con calma ed attenzione vedrai che riuscirai a farlo e come effetto collaterale scoprirai alcune funzioni di WordPress che potranno tornarti utili anche per altri sviluppi.


Fai scegliere ai tuoi utenti

1. Verifica la scelta dell’utente e abilita l’Editor Classico

Aggiungi questo codice nel file functions.php del tuo tema per verificare la scelta dell’utente e disabilitare Gutenberg quando necessario:

function myown_show_classic() {
    $user_id = get_current_user_id();
    // Recupera la preferenza dell'utente (se è abilitato l'Editor Classico)
    $enable_classic = get_user_meta($user_id, 'myown_enable_classic', true);
    if ($enable_classic) {
        // Disabilita Gutenberg e abilita l'Editor Classico
        add_filter('use_block_editor_for_post', '__return_false', 10);
    }
}
add_action('init', 'myown_show_classic');

2. Aggiungi una casella di selezione nella pagina di modifica del profilo utente

Con questo codice, aggiungi una casella di selezione nella pagina del profilo dell’utente (sia nella schermata “Modifica profilo” che “Visualizza profilo”), che consente di abilitare o disabilitare l’Editor Classico:

function myown_toggle_classic($user) {
    // Recupera il valore corrente (se la casella è selezionata o meno)
    $enabled = get_user_meta($user->ID, 'myown_enable_classic', true) ? 'checked' : '';
    echo "
    <h3 class='heading'>Editor Classico</h3>
    <table class='form-table'>
        <tr>
            <th><label for='myown_enable_classic'>Abilitare l'editor classico?</label></th>
            <td>
                <input type='checkbox' $enabled class='input-checkbox form-control' name='myown_enable_classic' id='myown_enable_classic' />
            </td>
        </tr>
    </table>
    ";
}
add_action('edit_user_profile', 'myown_toggle_classic');
add_action('show_user_profile', 'myown_toggle_classic');

3. Salva la scelta dell’utente

Questo codice infine salva la scelta dell’utente quando il profilo viene aggiornato:

function myown_toggle_classic_save($user_id) {
    // Verifica che l'utente abbia i permessi per modificare il profilo
    if (current_user_can('edit_user', $user_id)) {
        // Salva la scelta dell'utente (se la casella è selezionata o meno)
        update_user_meta($user_id, 'myown_enable_classic', isset($_POST['myown_enable_classic']) ? $_POST['myown_enable_classic'] : '');
    }
}
add_action('personal_options_update', 'myown_toggle_classic_save');

Cosa fa il codice nel dettaglio?

Cosa fa questo codice?

  1. myown_show_classic(): Verifica se l’utente ha scelto di abilitare l’Editor Classico. Se sì, disabilita l’Editor Gutenberg.
  2. myown_toggle_classic(): Aggiunge una casella di selezione alla pagina del profilo utente per consentire ad ogni utente di abilitare o disabilitare l’Editor Classico.
  3. myown_toggle_classic_save(): Salva la preferenza dell’utente quando il profilo viene aggiornato.

Con questa soluzione, ogni utente può scegliere il proprio editor direttamente dalla propria pagina del profilo, senza bisogno di plugin aggiuntivi.


Trasforma il codice in un plugin dedicato

Ora che il nostro codice è cresciuto un po’, è il momento di spostarlo dal file functions.php e creare il nostro plugin. Sì, stiamo creando un plugin per sostituire un altro, ma il nostro codice è minimalista e non appesantisce il sito.

1. Crea una cartella per il plugin

All’interno della directory wp-content/plugins, crea una nuova cartella e chiamala: myown_enable_custom_editor

2. Crea un file index.php vuoto

All’interno della cartella appena creata, crea un file chiamato index.php. Se ti stai chiedendo perché inserire un file index.php vuoto, consulta il precedente articolo per capire il motivo. Ecco il contenuto del file index.php:

<?php
// Silence is golden

3. Crea il file del plugin

Adesso, crea un altro file chiamato myown_enable_custom_editor.php. All’interno di questo file, aggiungi tutto il codice del plugin che gestisce l’Editor Classico. Ecco il contenuto del file:

<?php
/**
 * Plugin Name: My Own Enable Custom Editor
 * Plugin URI: https://yourwebsite.com/
 * Description: A simple plugin to enable the Classic Editor for users.
 * Version: 1.0
 * Author: Your Name
 * Author URI: https://yourwebsite.com/
 **/

function myown_show_classic() {
    $user_id = get_current_user_id();
    // Recupera la preferenza dell'utente (se l'Editor Classico è abilitato)
    $enable_classic = get_user_meta($user_id, 'myown_enable_classic', true);
    if ($enable_classic) {
        // Disabilita Gutenberg e abilita l'Editor Classico
        add_filter('use_block_editor_for_post', '__return_false', 10);
    }
}
add_action('init', 'myown_show_classic');

function myown_toggle_classic($user) {
    // Recupera il valore corrente (se la casella è selezionata o meno)
    $enabled = get_user_meta($user->ID, 'myown_enable_classic', true) ? 'checked' : '';
    echo "
    <h3 class='heading'>Editor Classico</h3>
    <table class='form-table'>
        <tr>
            <th><label for='myown_enable_classic'>Abilitare l'editor classico?</label></th>
            <td>
                <input type='checkbox' $enabled class='input-checkbox form-control' name='myown_enable_classic' id='myown_enable_classic' />
            </td>
        </tr>
    </table>
    ";
}
add_action('edit_user_profile', 'myown_toggle_classic');
add_action('show_user_profile', 'myown_toggle_classic');

function myown_toggle_classic_save($user_id) {
    // Verifica che l'utente abbia i permessi per modificare il profilo
    if (current_user_can('edit_user', $user_id)) {
        // Salva la preferenza dell'utente (se la casella è selezionata o meno)
        update_user_meta($user_id, 'myown_enable_classic', isset($_POST['myown_enable_classic']) ? $_POST['myown_enable_classic'] : '');
    }
}
add_action('personal_options_update', 'myown_toggle_classic_save');

4. Attiva il plugin

Una volta creato il plugin, puoi attivarlo direttamente dalla dashboard di WordPress. Vai su Plugin > Plugin installati e attiva il plugin “My Own Enable Custom Editor”.


Conclusioni

Hai trasformato il codice in un plugin che consente agli utenti di scegliere l’Editor Classico senza bisogno di installare plugin aggiuntivi. Il vantaggio è che hai il controllo di quello che accade al tuo sito, il tuo plugin fa solo ciò che serve, senza fronzoli. Con questa soluzione, avrai un codice minimalista, facilmente gestibile e più snello, senza compromettere le prestazioni del sito.

[ads_loop]