Aggiungere una conferma prima di pubblicare un articolo in WordPress
Perché serve una conferma prima di pubblicare
Noi blogger spesso pubblichiamo molti articoli e, a volte, premiamo il pulsante Pubblica per errore. Questo può causare contenuti incompleti o non revisionati online, con condivisioni automatiche su social, invii a iscritti via email e commenti confusi dai lettori. Una semplice conferma prima di pubblicare evita questi problemi e protegge la reputazione del sito.
Importante: la conferma non sostituisce il controllo qualità. Serve come ultima barriera contro errori umani.
Opzioni disponibili
- Metodo semplice: plugin gratuito. Ideale per chi non vuole toccare codice.
- Metodo manuale: aggiungere uno snippet PHP. Ideale per chi preferisce meno plugin e più controllo.
Metodo 1: Usare un plugin gratuito
Il modo più rapido è installare il plugin Confirm Publishing Actions. Puoi aggiungerlo tramite il pannello Plugin di WordPress o caricandolo nella cartella wp-content/plugins.
Cosa fa il plugin:
- Mostra un avviso quando provi a pubblicare, aggiornare o eliminare un articolo.
- Non richiede configurazioni aggiuntive.
Quando usare questo metodo:
- Sei alle prime armi con WordPress.
- Vuoi una soluzione pronta senza modificare il tema.
Limitazioni:
- Aggiunge un plugin in più alla tua istanza.
- Potrebbe non funzionare con editor o flussi di lavoro personalizzati molto customizzati.
Metodo 2: Aggiungere uno snippet nel tema o in un plugin specifico
Se preferisci non installare plugin, puoi incollare il seguente codice nel file functions.php del tema (o meglio: in un plugin specifico del sito per non perderlo cambiando tema). Il codice aggiunge uno script nella footer dell’area di amministrazione che mostra una conferma quando si clicca su Pubblica o Aggiorna.
(function($){
$(document).ready(function(){
var confirmMsg = """" . esc_js($message) . """";
$(document).on('click', '#publish, #save-post, #save-post-legacy', function(e){
if(!confirm(confirmMsg)){
e.stopImmediatePropagation();
e.preventDefault();
}
});
});
})(jQuery);
";
}
add_action('admin_footer','wp_add_publish_confirmation');Spiegazioni rapide:
- Modifica la stringa $message per personalizzare il testo.
- L’uso di esc_js aiuta a evitare problemi con gli apostrofi e le virgolette.
- Puoi includere altri selettori se il tuo editor usa pulsanti con ID diversi.
Nota tecnica: se usi l’Editor a blocchi (Gutenberg) o builder che non usano i pulsanti standard, verifica i selettori DOM; potrebbe essere necessario adattare lo script.
Suggerimenti e varianti del codice
- Se vuoi limitare la conferma solo per ruoli specifici (es. Autore), aggiungi un controllo di capability in PHP come current_user_can(‘edit_posts’).
- Se preferisci una finestra modale personalizzata, puoi sostituire confirm() con una libreria di modali (es. SweetAlert) caricata nell’admin.
- Per un comportamento non intrusivo, mostra la conferma solo quando il titolo o il contenuto non sono completi (es. titolo vuoto).
Esempio rapido per limitare a ruoli non amministratori:
Checklist prima di implementare
- Verifica la versione di WordPress e del tema.
- Esegui un backup prima di modificare functions.php.
- Testa lo snippet in un ambiente di staging.
- Se usi un plugin, controlla aggiornamenti e compatibilità.
Checklist per l’autore:
- Titolo corretto e formattato
- Contenuto spell-checked
- Featured image impostata
- Meta e SEO verificati
- Data di pubblicazione pianificata (se necessario)
Checklist per l’amministratore:
- Backup recente
- Controllo compatibilità plugin
- Accesso al file manager o FTP
- Staging disponibile per test
Casi in cui la conferma potrebbe fallire
- Editor personalizzati o page builder che non usano i pulsanti con ID standard possono bypassare lo script.
- Script di terze parti che intercettano e gestiscono la pubblicazione in modo asincrono.
- Utenti con javascript disabilitato non vedranno la conferma (in genere irrilevante nell’admin WordPress).
Soluzione: testare in ambiente staging e adattare i selettori JavaScript.
Test di accettazione
- Caso 1: Utente normale clicca Pubblica e appare la finestra di conferma.
- Caso 2: Utente annulla la conferma e il post non viene pubblicato.
- Caso 3: Amministratore (se escluso) non vede la conferma.
- Caso 4: Pubblicazione tramite API REST non viene bloccata dallo script client-side (comportamento previsto).
Best practice e sicurezza
- Evita di affidarti solo a controlli client-side per policy critiche; il controllo qui è una comodità UX.
- Mantieni aggiornati plugin e tema per ridurre incompatibilità.
- Se memorizzi preferenze utente per la conferma, assicurati di rispettare GDPR per i dati personali.
Alternativa avanzata: conferma lato server
Per flussi più rigorosi, implementa un flusso lato server che richiede uno stato di bozza confermato prima di cambiare lo status in publish. Questo richiede più codice e modifica dei salvataggi post, ma garantisce che le pubblicazioni tramite API non avvengano accidentalmente.
Mini-metodologia:
- Aggiungi un campo personalizzato “confirm_publish” quando l’utente richiede pubblicazione.
- Intercetta save_post in PHP e, se mancante, blocca la pubblicazione e imposta lo stato su draft con notifica.
- Fornisci un pulsante di conferma che imposta “confirm_publish” e rilancia la pubblicazione.
Questa soluzione è più sicura ma più complessa da testare.
Compatibilità e migrazione
- Se cambi tema, sposta lo snippet in un plugin specifico del sito per non perderlo.
- Verifica l’ID dei pulsanti nell’editor in uso (Gutenberg, Classic, page builder). Gli ID possono cambiare tra versioni.
Ruoli e responsabilità
- Autore: usa la conferma come controllo finale.
- Editor: può disabilitare la conferma per autori affidabili o mantenere per revisione.
- Admin: implementa la soluzione in staging e monitora compatibilità.
Riepilogo
Aggiungere una conferma prima di pubblicare è una misura semplice ed efficace per prevenire errori umani. Puoi ottenere lo stesso risultato con un plugin gratuito o con un breve snippet PHP. Testa sempre le modifiche in staging e considera una soluzione server-side se hai flussi editoriali complessi.
Note finali:
- Se riscontri problemi durante l’aggiunta del codice, commenta sotto o contatta l’amministratore del sito.
- Migliore pratica: implementa lo snippet in un plugin personalizzato per preservarlo quando cambi tema.
Materiali simili
Nuova sezione Tastiera in Windows 11 — Guida pratica
Disattivare X-Ray su Amazon Prime Video
Schermo chiamata iPhone non appare: come risolvere
Widget condizionali WordPress: 3 plugin senza codice
Provare aggiornamenti Windows 11 prima degli altri