Pimp a WordPress-Standard-Widget

1 min read

Poco tempo fa ho presentato un hack che nasconde il Link-Widget nella homepage del blog. La decisione di cercare una soluzione del tipo “quick & dirty” era in parte dovuta al mio gusto personale e in parte alla curiosità di capire che cosa succede all’interno di WordPress una volta attivato un widget. Alla fine ho presentato una soluzione non molto bella e nemmeno raccomandabile in un ambiente più complesso.

A questo punto, prima di presentare una soluzione un po’ più elegante, voglio scrivere due righe sui widget. In rete viaggiano tante spiegazioni diverse su cosa sia un WordPress Widget. Ci sono anche articoli che descrivono questa funzionalità come qualcosa a metà strada fra tema e plugin. Ma questa la definirei una semplificazione e, di fatto, non è così!

Naturalmente i widget esistono per definizione per essere presentati nelle sidebar dinamiche. Ma per questo motivo non diventano automaticamente una parte di un tema. Nel controllo dei widget, che si trova nel pannello di amministrazione, i widget restano disponibili, se il codice non si trova nel functions.php del tema, anche quando si cambia il design.

Per un widget il fatto che il suo codice esista nel core di WordPress, nel functions.php del tema o in un file di un plugin, è del tutto indifferente. Importante è solo attenersi alle regole, ovvero seguire la Widget-API. Tra l’altro, personalmente trovo anche la denominazione API un po’ infelice.

Parlerei piuttosto di un Framework o per essere più preciso di una raccolta delle classi con qualche esempio predefinito, gli Standard Widget. Tutti i widget devono estendere la classe WP_Widget e devono implementare pochi metodi per integrarsi bene.

A questo punto la domanda, perché non estendere i widget standard, è ovvia. È possibile determinare da soli quando mostrare un widget e quando no? La risposta è sì … e non solo: alla fine la soluzione risulta non solo efficace ma anche molto semplice.

Il codice si può inserire per esempio nel file functions.php del tema e si può spiegare anche con poche parole:

La classe MY_Widget_Links estende il widget standard responsabile per la visualizzazione della blogroll. Il metodo widget che rende l’output controlla prima tramite i tag condizionali se la pagina non è la nostra homepage e, in tal caso, ricorre al metodo della classe parent. Presento poi una funzione che viene triggerata quando i widget vengono inizializzati, che disattiva il widget standard e infine attiva la versione modificata.

PHP – Verso la versione 7

Il WordCamp Torino 2018 è purtroppo già alle spalle. E’ stato un altro bellissimo incontro della community italiana di WordPress. Ho potuto partecipare come...
realloc
5 min read

i18n & L10n for themes and plugins

La comunità italiana di WordPress è completamente rinata e con il WordCamp a Torino 2016 festeggia questo enorme successo. Sono fiero di potere fare parte...
realloc
5 min read

Menu item solo per user loggati

Solo ogni morte di papa c’è un nuovo post in questo blog… e poi anche così corto 😉 Lo snippet che trovate in questo articolo è stato...
realloc
33 sec read

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

%d blogger hanno fatto clic su Mi Piace per questo: