Una nuova vulnerabilità di sicurezza denominata Click2Shell interessa numerose installazioni WordPress e può consentire a un attaccante di far installare silenziosamente un tema attraverso un collegamento appositamente costruito.

Il problema è stato corretto con WordPress 7.1.1, pubblicato il 17 settembre 2026. Gli amministratori dovrebbero quindi controllare immediatamente la versione installata e applicare l’aggiornamento di sicurezza disponibile per il proprio ramo di WordPress.

La vulnerabilità del Core, presa singolarmente, non permette automaticamente di eseguire qualsiasi codice sul server. Il rischio diventa però critico quando viene combinata con una seconda falla presente nel tema installato dall’attaccante.

Che cos’è Click2Shell

Click2Shell è il nome assegnato dai ricercatori di pwn.ai a una catena di vulnerabilità che può iniziare con un solo clic effettuato da un amministratore WordPress già autenticato.

L’attacco utilizza un URL costruito in maniera particolare. Se un amministratore con una sessione attiva apre quel collegamento, WordPress può essere indotto a installare e mostrare in anteprima un tema proveniente dalla directory ufficiale, senza che l’utente prema volontariamente il pulsante di installazione.

Il tema rimane inattivo e la grafica del sito non cambia. Per questo l’operazione potrebbe passare inosservata.

Come funziona la vulnerabilità

Il problema nasce dal modo differente in cui due componenti interpretano lo stesso valore contenuto nell’indirizzo web.

La directory di WordPress.org considera quel valore come il nome di un tema realmente disponibile. Il codice JavaScript eseguito nel browser dell’amministratore, invece, riutilizza il valore originale per individuare un elemento nella pagina di amministrazione.

Attraverso caratteri costruiti appositamente, un attaccante può alterare questa selezione e indirizzarla verso il pulsante utilizzato per installare il tema. Lo script della pagina finisce quindi per azionare il comando sfruttando la sessione dell’amministratore.

L’aggressore non deve conoscere la password e non deve possedere il nonce di sicurezza: sono i privilegi della sessione già autenticata a rendere possibile l’operazione.

Perché è necessario il clic di un amministratore

Click2Shell non compromette automaticamente ogni sito WordPress raggiungibile da Internet. Per avviare la catena descritta dai ricercatori devono verificarsi alcune condizioni:

  • un amministratore deve avere una sessione WordPress attiva;
  • l’amministratore deve aprire il collegamento preparato dall’attaccante;
  • il sito deve utilizzare una versione di WordPress vulnerabile;
  • per arrivare all’esecuzione di codice deve essere disponibile anche una seconda vulnerabilità sfruttabile nel tema installato.

Questo non rende il problema trascurabile. I collegamenti possono essere distribuiti tramite phishing, email, messaggi privati, ticket di assistenza o comunicazioni apparentemente legittime.

Un tema inattivo può comunque eseguire codice

Un aspetto importante riguarda l’anteprima dei temi. Un tema WordPress non deve necessariamente essere attivato per vedere eseguito parte del proprio codice PHP.

Quando WordPress genera un’anteprima attraverso gli strumenti di personalizzazione, può caricare i file del tema anche se questo risulta ancora inattivo. Di conseguenza, installare silenziosamente un tema vulnerabile può creare le condizioni necessarie per un secondo attacco.

Dall’installazione del tema all’esecuzione di codice

Per dimostrare la gravità della catena, i ricercatori hanno utilizzato una vulnerabilità separata presente nel tema Mobile Repair Zone.

Il tema conteneva una funzione in background capace di ricevere un indirizzo remoto, scaricare un pacchetto ed eseguirne il contenuto senza verificare adeguatamente autorizzazioni e token di sicurezza.

Combinando questa debolezza con l’installazione forzata del tema, è stato possibile arrivare all’esecuzione di codice sul server. In uno scenario reale ciò potrebbe consentire di installare malware, creare utenti amministratori, modificare file, sottrarre informazioni o compromettere completamente il sito.

Click2Shell non può installare qualsiasi archivio ZIP

È importante chiarire che la vulnerabilità del Core non permette, da sola, di caricare un tema arbitrario preparato dall’attaccante.

L’aggressore può scegliere un tema realmente presente nella directory ufficiale di WordPress.org. Per trasformare l’installazione in una compromissione completa deve quindi individuare un tema disponibile nella directory che contenga un’altra vulnerabilità utilizzabile.

Il rischio dimostra comunque quanto possa essere pericolosa la combinazione di più problemi apparentemente separati.

Gravità alta o critica?

Le due valutazioni si riferiscono a scenari differenti:

  • CVSS 7.1, gravità alta: riguarda la vulnerabilità del Core che permette l’installazione e l’anteprima forzata di un tema ufficiale;
  • CVSS 9.6, gravità critica: riguarda la catena completa che combina Click2Shell con una vulnerabilità nel tema e arriva all’esecuzione di codice.

Queste valutazioni sono state fornite dai ricercatori che hanno analizzato il problema. WordPress non aveva pubblicato una propria classificazione CVSS al momento della divulgazione.

Quali versioni di WordPress sono vulnerabili?

Il difetto riguarda le versioni di WordPress dalla 6.0 fino alle versioni precedenti alla relativa correzione. La patch principale è inclusa in WordPress 7.1.1, mentre gli aggiornamenti di sicurezza sono stati distribuiti anche per i rami precedenti ancora supportati.

Chi non utilizza WordPress 7.x deve installare l’aggiornamento proposto nella propria Bacheca, corrispondente al ramo attualmente in uso.

Come verificare se il sito è aggiornato

Per effettuare il controllo è possibile accedere alla Bacheca WordPress e aprire:

Bacheca → Aggiornamenti

In questa schermata viene mostrata la versione installata e l’eventuale disponibilità di un aggiornamento. Anche quando gli aggiornamenti automatici sono abilitati, è opportuno verificare manualmente che l’installazione sia stata completata.

Prima di aggiornare un sito particolarmente importante è consigliabile creare un backup completo dei file e del database. Il backup non deve però diventare un motivo per rimandare a lungo una patch di sicurezza.

Cosa fare immediatamente

  1. Creare un backup completo del sito e del database.
  2. Installare l’aggiornamento di sicurezza di WordPress disponibile.
  3. Aggiornare temi e plugin alle versioni più recenti.
  4. Eliminare i temi inutilizzati, mantenendo soltanto quello attivo e un eventuale tema predefinito di emergenza.
  5. Controllare l’elenco dei temi per individuare installazioni inattese.
  6. Verificare gli utenti amministratori e rimuovere eventuali account sconosciuti.
  7. Esaminare i log del server e le modifiche recenti ai file.
  8. Evitare di aprire link amministrativi ricevuti attraverso messaggi non verificati.

Come controllare la presenza di temi sospetti

Dalla Bacheca è possibile aprire Aspetto → Temi e verificare se sono presenti elementi che non sono stati installati dal proprietario o dal gestore del sito.

Il controllo visuale, tuttavia, non è sufficiente per escludere una compromissione. Se esiste il sospetto che un collegamento malevolo sia stato aperto prima dell’aggiornamento, è consigliabile controllare anche:

  • data e ora di creazione delle cartelle presenti in wp-content/themes;
  • file PHP modificati recentemente;
  • nuovi utenti con privilegi amministrativi;
  • plugin sconosciuti o disattivati;
  • operazioni anomale registrate nei log di accesso;
  • richieste sospette verso le pagine di installazione e anteprima dei temi.

Non basta aggiornare soltanto il Core

L’aggiornamento del Core blocca il vettore Click2Shell dimostrato dai ricercatori, ma la vicenda mette in evidenza un problema più ampio: la sicurezza di WordPress dipende anche dal codice di temi e plugin.

Un componente vulnerabile può trasformare un problema limitato in una compromissione completa del server. Per ridurre la superficie di attacco è quindi importante:

  • installare solo componenti realmente necessari;
  • rimuovere definitivamente temi e plugin inutilizzati;
  • applicare rapidamente gli aggiornamenti;
  • utilizzare account amministrativi solo quando necessario;
  • proteggere gli accessi con autenticazione a due fattori;
  • mantenere backup esterni e verificati;
  • monitorare modifiche ai file e nuovi account privilegiati.

Click2Shell è già sfruttata negli attacchi?

Al momento della divulgazione non risultavano prove pubbliche di sfruttamento attivo della vulnerabilità. L’assenza di attacchi conosciuti, però, non garantisce che non possano iniziare dopo la pubblicazione dei dettagli tecnici.

Una volta resa nota una vulnerabilità, aumenta infatti la possibilità che vengano sviluppati strumenti automatici, campagne di phishing e tentativi mirati contro siti non aggiornati.

Conclusioni

Click2Shell mostra come una singola azione apparentemente innocua possa avviare una catena di attacco complessa. La vulnerabilità del Core consente l’installazione silenziosa di un tema ufficiale; una seconda falla nel tema può trasformare quell’installazione in esecuzione di codice sul server.

La misura più importante è aggiornare immediatamente WordPress alla versione corretta per il proprio ramo. È inoltre opportuno controllare temi, plugin, utenti amministrativi e log del server, soprattutto se un amministratore potrebbe aver aperto collegamenti sospetti mentre era autenticato.

Se hai mai visto un errore “critico” in WordPress, una schermata bianca, un’area admin lenta o chiamate AJAX che falliscono senza un motivo chiaro,
molto spesso il colpevole non è admin-ajax.php in sé… ma qualcosa che stampa output inatteso oppure un plugin che va in crash durante l’inizializzazione.
In questa pagina ti spiego un test semplice, replicabile e “community-friendly” per diagnosticare il problema in modo pulito.

Obiettivo: verificare che wp-admin/admin-ajax.php risponda con JSON pulito e individuare subito se qualche plugin/tema
sta “sporcando” l’output (es. Deprecated, Notice, echo accidentali) o causando errori in fase di bootstrap.

Cos’è admin-ajax.php e perché è così importante

In WordPress, admin-ajax.php è un endpoint usato per gestire richieste AJAX, cioè chiamate “in background” che aggiornano dati senza ricaricare la pagina.
Lo usano plugin, temi, page builder (come Elementor), sistemi di sicurezza (come Wordfence) e anche plugin custom.

Quando tutto funziona, admin-ajax.php restituisce risposte pulite. Ma se qualcosa va storto, può succedere che:

  • il JSON venga “rotto” da output stampato prima della risposta (Deprecated/Notice/Warning);
  • un plugin vada in fatal error durante admin_init o hook simili;
  • la chiamata AJAX torni 200 ma con contenuto non valido (e in JS sembra “misteriosamente” tutto rotto).

Il nostro “AJAX Test”: cosa fa e cosa controlla

Abbiamo creato un piccolo plugin di test, pensato per essere:
semplice, sicuro (solo admin), ripetibile e soprattutto utile per segnalazioni in community o in ticket.

Verifica 1: risposta JSON pulita

Il plugin fa una chiamata a admin-ajax.php con un’azione dedicata e controlla se la risposta è un JSON valido.
Se il JSON è valido: bene.
Se non è valido: quasi sempre c’è output “sporco” prima del JSON (es. righe “Deprecated:”).

Verifica 2: rilevamento output indesiderato

Il plugin cattura qualsiasi output involontario e mostra un’anteprima (garbage_preview),
così sai immediatamente se e cosa sta rompendo le risposte AJAX.

Verifica 3: log per assistenza

Oltre all’output in pagina, il plugin scrive log (error_log / debug.log) con:
versione PHP, versione WP, ID utente, e segnalazione “OUTPUT_GARBAGE_DETECTED” quando serve.
È materiale perfetto da allegare a un ticket o a un post in community.

Come usare il test (passi rapidi)

  1. Installa e attiva il plugin di test.
  2. Vai in Bacheca → Strumenti → AJAX Debug Test.
  3. Premi Esegui test AJAX.
  4. Se vedi success: true → la pipeline AJAX è sana.
    Se vedi success: false e un garbage_preview → c’è output indesiderato.

Consiglio pratico: in produzione evita di mostrare errori a schermo.
Anche quando non sono “fatal”, i Deprecated stampati in output possono rompere JSON e API.

define('WP_DEBUG', true);define('WP_DEBUG_LOG', true);define('WP_DEBUG_DISPLAY', false);@ini_set('display_errors', 0);

Quando un “Deprecated” diventa un problema reale

Un messaggio Deprecated non è un errore fatale: indica che una funzione o un comportamento verrà rimosso in futuro.
Il problema nasce quando viene stampato a schermo durante una risposta JSON o REST:
la risposta non è più “pulita”, quindi il frontend non riesce a parsare correttamente i dati.

In questi casi la soluzione migliore è:

  • non mostrare errori a schermo (log sì, display no);
  • mantenere versioni PHP stabili e compatibili (es. 8.2/8.3);
  • aggiornare plugin/tema che non sono ancora “puliti” sulle versioni più nuove di PHP.

Segnalazioni e miglioramenti: rendiamolo perfetto insieme

Questo test nasce per essere utile anche ad altri: più feedback riceviamo, più lo rendiamo preciso.
Se vuoi aiutarci a migliorarlo, puoi inviare una segnalazione con:

  • risultato del test (JSON completo);
  • versione PHP, WordPress e tema attivo;
  • lista dei plugin principali (Elementor/Yoast/Wordfence ecc.);
  • estratto di log con “OUTPUT_GARBAGE_DETECTED” se presente.

Obiettivo community: arrivare a una versione del test che, oltre a rilevare “garbage”, aiuti anche a capire chi lo produce:
ad esempio indicando se il problema appare solo con un certo plugin attivo o in una certa versione di PHP.

Apri un ticket in assistenza (sezione Plugin WordPress)

Se vuoi che analizziamo il tuo caso in modo ordinato, apri un ticket in assistenza nella sezione Plugin WordPress.
Nel messaggio, incolla questi dati:

  • URL del sito (o ambiente staging)
  • Risultato del test (output JSON)
  • PHP / WP / Tema
  • Plugin coinvolti (es. Elementor, Wordfence, Yoast, Premium Addons…)
  • Log (debug.log o error_log) con data/ora

Nota: se il sito è in “recovery mode”, indicacelo nel ticket: in quei casi la priorità è ripristinare accesso e stabilità prima di ottimizzare.

FAQ: domande frequenti sul test admin-ajax

Se il test è OK, posso escludere admin-ajax come causa?

Sì: se il test restituisce JSON pulito e non rileva output spazzatura, la pipeline AJAX è sana.
In caso di problemi reali, la causa è più spesso un plugin specifico, un hook, o un fatal in fase di bootstrap.

Perché in alcuni casi vedo errori in admin-ajax e in altri no?

Perché può dipendere da versione PHP, plugin aggiornati/non aggiornati, cache, oppure impostazioni server (display_errors).
Per questo il test include versioni e log: così si ragiona su dati oggettivi.

Meglio admin-ajax o REST API?

Per progetti moderni, spesso la REST API è più pulita e scalabile.
Ma admin-ajax resta usato da tantissimi plugin: l’importante è che sia stabile e non “sporco”.

Cosa devo allegare in un ticket se il test fallisce?

Incolla l’output JSON del test, indica PHP/WP/tema e i plugin principali, e aggiungi un estratto di log con data/ora.
Se c’è garbage_preview, incollalo: spesso basta quello per capire subito la causa.

Conclusione

Questo test nasce da un caso reale: errori critici, plugin che interagiscono tra loro e differenze tra versioni PHP.
L’idea è semplice: prima rendiamo misurabile il problema, poi lo risolviamo con sicurezza.
Se vuoi contribuire, invia una segnalazione o apri un ticket: miglioriamo il tool insieme.

 



 

[osm_map height=”460px” markers=”41.9028,12.4964|45.4642,9.1900|40.8518,14.2681″ titles=”Roma|Milano|Napoli” cluster=”1″]

Vuoi inserire mappe OpenStreetMap in WordPress con più pin, clustering numerico, popup HTML e asset locali (no CDN)? OSM Multi Pin Shortcode è un plugin leggero basato su Leaflet e MarkerCluster, pensato per performance, compatibilità e conformità alle regole della WordPress.org Plugin Directory. Indice

  1. Perché scegliere OSM Multi Pin Shortcode
  2. Installazione e requisiti
  3. Shortcode e attributi (tabella completa)
  4. Esempi pronti
  5. Best practice performance e SEO
  6. Troubleshooting: mappa grigia, JSON non valido & co.
  7. Conformità WordPress.org e licenze
  8. Scarica e inizia

Perché scegliere OSM Multi Pin Shortcode

  • Multi-pin e cluster numerici: gestisci centinaia di marker con raggruppamenti chiari quando l’utente è zoom-out.
  • Popup HTML sanificati: formattazione ricca in sicurezza (wp_kses_post).
  • Asset locali: niente CDN esterni negli enqueue → review-friendly per WordPress.org e meno dipendenze di rete.
  • Compatibilità: funziona con editor a blocchi; in admin non carica script inutili per evitare conflitti di salvataggio.
  • API semplice: un unico shortcode con attributi chiari; supporto a markers_json per integrare dati da codice o ACF.

Installazione e requisiti

  1. Carica la cartella del plugin in /wp-content/plugins/ e attivalo da Plugin → Installati.
  2. Nel plugin sono previsti gli asset locali: Leaflet 1.9.4 e MarkerCluster 1.5.3. Assicurati che i file siano presenti in assets/leaflet/ e assets/cluster/ (con la cartella images di Leaflet).
  3. Verifica che il tema includa <?php wp_head(); ?> e <?php wp_footer(); ?>.

Suggerimento: se usi tab/accordion, la mappa fa già invalidateSize() all’init, ma dai comunque un’altezza esplicita al contenitore.

Shortcode e attributi

Shortcode base: [osm_map ...]

AttributoTipo / DefaultDescrizione
widthstring, 100%Larghezza contenitore (es. 100%, 800px).
heightstring, 400pxAltezza mappa: deve essere esplicita.
zoomint, 12Livello di zoom iniziale (se è impostato anche center).
centerstring, vuotoCentro mappa lat,lng. Se omesso, fit automatico sui marker.
tilesstring, https://tile.openstreetmap.org/{z}/{x}/{y}.pngTemplate del provider. Evita di sanificarlo con funzioni che rompono le {graffe}.
attribstring, © OpenStreetMap contributorsAttribution mostrata sulla mappa.
cluster1 | 0Abilita raggruppamento marker (numeri).
cluster_disable_at_zoomint, 12Livello di zoom a cui i cluster si sciolgono (i numeri lasciano posto ai singoli pin).
icon_urlstring, vuotoURL di un’icona personalizzata (altrimenti pin di default di Leaflet).
icon_sizestring, 32,32Dimensione icona personalizzata.
icon_anchorstring, 16,32Punto di ancoraggio sull’icona (x,y).
popup_anchorstring, 0,-28Offset dell’ancoraggio popup.
markersstring, vuotoLista pipe-separata lat,lng|lat,lng|....
titlesstring, vuotoTitoli (tooltip) pipe-separati per i marker.
popupsstring, vuotoPopup HTML (sanificati) pipe-separati.
markers_jsonJSON, vuotoArray di oggetti {lat,lng,title,popup}. Consigliato per integrazioni programmatiche.

Esempi pronti

1) Mappa base con tre città e cluster

[osm_map height="460px"
         markers="41.9028,12.4964|45.4642,9.1900|40.8518,14.2681"
         titles="Roma|Milano|Napoli"
         popups="<b>Roma</b>|<b>Milano</b>|<b>Napoli</b>"
         cluster="1"
         cluster_disable_at_zoom="12"]

2) Versione JSON (più comoda da generare a codice)

[osm_map height="500px" markers_json='[
  {"lat":41.9028,"lng":12.4964,"title":"Roma","popup":"<b>Roma</b>"},
  {"lat":45.4642,"lng":9.1900,"title":"Milano","popup":"<b>Milano</b>"},
  {"lat":40.8518,"lng":14.2681,"title":"Napoli","popup":"<b>Napoli</b>"}
]' cluster="1"]

3) Centro e zoom fissi

[osm_map height="420px" center="41.9028,12.4964" zoom="10"
         markers="41.9028,12.4964|42.0,12.6" titles="Centro|Punto 2" cluster="0"]

4) Pin personalizzato (via URL)

[osm_map height="420px"
         markers="41.9,12.49|45.46,9.19"
         titles="Roma|Milano"
         icon_url="https://tuo-sito.it/path/pin.png"
         icon_size="32,32" icon_anchor="16,32" popup_anchor="0,-28"]

5) Cambiare provider delle tessere (tiles)

[osm_map height="460px"
         tiles="https://tile.openstreetmap.org/{z}/{x}/{y}.png"
         markers="40.85,14.26" titles="Napoli"]

Attenzione: il template dei tiles deve mantenere le {graffe} ({z}, {x}, {y}).

Best practice performance e SEO

  • Asset locali: caricando Leaflet/MarkerCluster dal plugin eviti latency esterne e sei conforme alle policy della directory.
  • Height esplicita: imposta sempre height nello shortcode o via CSS, altrimenti la mappa potrebbe apparire “grigia”.
  • Cluster: usa cluster=1 e cluster_disable_at_zoom per mantenere l’interfaccia pulita in zoom-out.
  • Popup leggeri: evita HTML pesante o script inline nei popup; restano sanificati, ma è meglio tenerli snelli.
  • Tiles: il server OSM pubblico è perfetto per demo e siti piccoli; per carichi elevati valuta un provider dedicato/caching.

Troubleshooting

Mappa grigia (pin visibili ma sfondo assente)
Quasi sempre l’URL dei tiles è stato “rotto” (le {graffe} sono state encodate). Usa il default del plugin o passa un template con {z}/{x}/{y} intatte.

“Aggiornamento fallito. La risposta non è una risposta JSON valida.”
Evita qualunque output HTML in admin o durante richieste REST/AJAX. Il plugin carica gli script solo nel front-end e mostra eventuali notice solo nella schermata Plugin.

Non vedo il pin di default
Assicurati che in assets/leaflet/ ci sia la cartella images con marker-icon.png, marker-icon-2x.png, marker-shadow.png.

Consiglio
Se usi tab/accordion, la mappa viene inizializzata con invalidateSize() per forzare il ricalcolo quando diventa visibile.

Conformità WordPress.org e licenze

  • Nessun CDN negli enqueue: gli asset sono serviti dal plugin → niente “OffloadedContent”.
  • Licenze: includi i file LICENSE di Leaflet (BSD-2-Clause) e MarkerCluster (MIT) dentro la cartella assets.
  • Sicurezza: popup sanificati con wp_kses_post, nessuna telemetria.

Roadmap, changelog e supporto

Roadmap

  • Blocco Gutenberg “OSM Map” con UI per aggiungere marker.
  • Supporto GeoJSON e import CSV.
  • Temi di marker predefiniti.

Changelog (estratto)

  • 1.3.x – Asset locali, handle univoci, cluster configurabile, fix admin/REST.
  • 1.2.x – Traduzioni e controlli in editor per evitare JSON non valido.
  • 1.0.x – Prima release con multi-pin, cluster e popup.

Hai bisogno di aiuto o vuoi proporre una funzione? Lascia un commento o contattaci: felici di migliorare il plugin insieme.

Scarica e inizia

Pronto a inserire la tua prima mappa OSM su WordPress? Installa il plugin, crea la pagina e incolla lo shortcode di esempio:

[osm_map height="460px"
         markers="41.9028,12.4964|45.4642,9.1900|40.8518,14.2681"
         titles="Roma|Milano|Napoli"
         cluster="1"
         cluster_disable_at_zoom="12"]

In meno di un minuto hai una mappa pulita, veloce e con pin raggruppati quando serve. 🚀

What Time Is It: il plugin WordPress che ti mostra sempre l’ora giusta (e nel fuso orario che vuoi)

Chi lavora con WordPress – che sia uno sviluppatore, un copywriter, un editor o un semplice appassionato – sa quanto può essere importante avere il tempo sotto controllo. Quando si lavora a progetti per clienti internazionali, oppure si pubblicano articoli su base programmata, o ancora si fa parte di un team distribuito in più parti del mondo, il riferimento temporale diventa fondamentale.

Ed è proprio da questa esigenza che nasce What Time Is It, un plugin WordPress semplice ma geniale, progettato per portare un orologio digitale preciso e personalizzabile direttamente nella tua area di lavoro. In questo articolo ti racconterò cosa fa, come funziona e perché dovresti installarlo subito.

Un orologio nel posto giusto: l’editor WordPress

What Time Is It aggiunge un orologio digitale direttamente nella sidebar laterale dell’editor Gutenberg. Mentre stai scrivendo un articolo o lavorando su una pagina, il plugin mostra in tempo reale l’ora del fuso orario che hai scelto. Non solo: puoi cambiarlo in qualsiasi momento usando il campo di selezione rapido integrato.

Questo approccio è perfetto per:

  • Chi pubblica contenuti in orari strategici.

  • Chi lavora con collaboratori o clienti all’estero.

  • Chi desidera un riferimento orario chiaro e sempre visibile, senza dover aprire una nuova scheda del browser.

Fluido, locale, senza API esterne

Uno dei punti di forza di questo plugin è che non usa alcuna API esterna. Non ci sono dipendenze da servizi come worldtimeapi.org o simili, che spesso causano problemi di CORS o malfunzionamenti offline. What Time Is It si basa esclusivamente su JavaScript nativo e sfrutta la potenza di toLocaleTimeString() con supporto per i fusi orari, quindi:

  • Funziona offline
  • È istantaneo e fluido
  • È leggero (zero chiamate di rete)
  • È affidabile nel tempo

Il tutto aggiornato in tempo reale, ogni secondo.

Scegli il fuso orario che ti serve

L’interfaccia del plugin include un campo input con datalist che permette di cercare e selezionare tra centinaia di fusi orari supportati dal browser. Basta iniziare a scrivere (es. “New York”, “Tokyo”, “Europe/Rome”) e l’opzione corretta sarà suggerita automaticamente.

Il plugin si occupa di:

  • Normalizzare la scrittura (maiuscole, spazi, slash).

  • Verificare la validità del fuso orario.

  • Salvare la scelta nel profilo utente, così che venga mantenuta anche nelle sessioni future.

Design semplice, efficace, integrato

Il box visualizzato nella sidebar è essenziale e chiaro. Mostra:

  •  Il nome del fuso orario selezionato.

  •  L’orologio digitale ben visibile, in stile “Courier” per un tocco retro-digitale.

  •  Il campo per cambiare fuso orario.

Il plugin eredita lo stile grafico del backoffice WordPress e si adatta perfettamente al flusso di lavoro. Niente popup invasivi, niente pagine di configurazione: è tutto lì, dove serve, quando serve.

Installazione: due click e via

Il plugin è distribuito in formato .zip pronto all’uso. L’installazione è semplice:

  1. Vai in Plugin > Aggiungi nuovo > Carica plugin.

  2. Carica il file what-time-is-it.zip.

  3. Attiva il plugin.

  4. Apri qualsiasi post o pagina nell’editor WordPress per vederlo in azione nella sidebar.

Non c’è bisogno di configurazioni aggiuntive. Funziona subito.

Perfetto per team remoti, agenzie e blogger internazionali

“What Time Is It” è ideale per tutte quelle situazioni in cui il tempo (e il fuso) conta:

  • Redazioni con redattori in paesi diversi.

  • Team che lavorano su Slack, GitHub o Google Meet e vogliono un orario di riferimento direttamente in WordPress.

  • Siti con contenuti programmati per la pubblicazione automatica.

  • Agenzie che gestiscono siti di clienti internazionali.

E perché no, è utile anche per chi vuole semplicemente un orologio sempre sott’occhio mentre lavora!

Leggero e sicuro

Il plugin è compatibile con:

  • WordPress 6.6 o superiore

  • PHP 7.4 o superiore

Ogni output HTML è gestito in modo sicuro con funzioni come esc_html() e esc_attr(). Gli input dell’utente sono normalizzati e sanitizzati. Il codice è interamente caricato in ambienti admin, quindi non impatta sul frontend.

Open source e migliorabile

What Time Is It è pensato per essere semplice, ma può essere esteso facilmente. Alcune possibili feature future:

  • Supporto a più fusi orari contemporanei (es. confronto NYC vs Tokyo).

  • Tema chiaro/scuro dell’orologio.

  • Integrazione con il pannello utente per impostare un fuso orario globale.

È perfetto anche come base per chi vuole sviluppare plugin admin più complessi o introdurre elementi di UX nel backend.

Conclusione

Semplice, leggero, utile: What Time Is It è uno di quei plugin che potresti non pensare di installare subito… ma una volta provato, diventa parte naturale del tuo flusso di lavoro.

Ti aiuta a mantenere il tempo sotto controllo, senza fronzoli, senza rischi, e soprattutto senza dipendere da servizi esterni.

Scaricalo, installalo e… guarda che ore sono 🕒