Shortcode: il tuo plugin in poche mosse

Scritto da Alberto il 7 apr 2008  in Wordpress

Vi siete mai trovati a dover scrivere un plugin per wordpress che trasformi qualcosa nel vostro articolo in qualcos’altro? Vi faccio un esempio:

[mia-sezione background="red"]Questa parte di testo avrà il background rosso[/mia-sezione]

in ->

<span style=”background:red;”>Questa parte di testo avrà il background rosso</span>

Wordpress.org

Ebbene i nostri amici di Wordpress (con la versione 2.5) ci risparmiano la scrittura di espressioni regolari e inseriscono una nuova funzione che fa tutto per noi e ci aiuta nella scrittura dei nostri plugin!

Vediamo in breve come riprodurre l’esempio fatto sopra..

Cominciamo con lo scrivere una funzione che converta il contenuto del nostro “tag-personale” nel contenuto finale. Alla funzione verranno passati due valori:

Gli attributi sono i parametri chiave->valore del nostro tag, ad es: [mio-tag attributo1="valore1" attributo2="valore2"] che in PHP verranno memorizzati come $attributi['attributoX']=valoreX .

Il contenuto è la parte di testo contenuta tra il tag di apertura e chiusura. NB: il contenuto può anche essere vuoto quindi dobbiamo prevedere un comportamento di default. Nel nostro caso non faremo nulla se il contenuto è vuoto.

Vediamo quindi la nostra funzione:

function mia_sezione_shortcode( $attributi, $contenuto= null ) {
if( !isset($attributi['background']) )
$attributi['background']=’#0AA’;
return ‘<span style=”background:’ . $attributi['background'] . ‘; “>’ . $contenuto . ‘</span>’;;
}

Se vogliamo dare la possibilità al contenuto di essere ulteriormente analizzato alla ricerca di shortcode sarà sufficiente scriverlo nel return nel seguente modo:

return ‘<span style=”background:’ . $attributi['background'] . ‘; “>’ . do_shortcode($contenuto) . ‘</span>’;

Fatto ciò non resta che registrare la nostra funzione come gestore di shortcode per il tag “mia-sezione”:

add_shortcode(’mia-sezione’, ‘mia_sezione_shortcode’);

Abbiamo finito! Ora possiamo sbizzarrirci a creare plugins senza rallentamenti e con molta comodità!

Vi allego qui il plugin fatto da me per creare le sezioni di codice che uso qui su itcoffee.net che può andare a sostituire il plugin Quickcode nel caso non abbiate bisogno di quei “mostra/nascondi codice” che fornisce quel plugin.

codestyle.zip

Lasciaci il tuo commento..