WordPress: usare gli shortcodes
venerdì 3 luglio, 2009Dalla versione 2.5 di WordPress (meglio 2.5.1) sono disponibili i cosidetti shortcodes, una procedura che permette di creare delle callback, o meglio degli hook, quando nel testo del nostro post viene trovata una stringa formattata con le parentesi quadre tipo [id_shortcode]. Prima della release 2.5 di WordPress gli shortcodes erano implementati manualmente (vedi Napolux), ora è possibile sfruttarli con più semplicità e per gli usi più disparati.
Sintassi
Per utilizzare gli shortcodes è sufficente creare una funzione di hook, con dei parametri standard e impostare lo shortcodes tramite add_shortcode():
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /** * Questo è il prototipo della funzione di hook */ function mio_shortcode_hook( $attrs, $content = null ) { // codice qui return "Output nel post"; } /** * add_shortcode() accetta due parametri: * * @param string $tag Shortcode tag to be searched in post content. * @param callable $func Hook to run when shortcode is found. */ add_shortcode( "mio_shortcode", "mio_shortcodes_hook" ); |
Questo codice può essere posizionato nel file functions.php. Durante la scrittura del post inserendo mio_shortcode tra parentesi quadre sarà eseguito il codice dell’hook (della funzione) mio_shortcode_hook().
La funzione di hook, e il nostro shortcode, possono essere utilizzati in vari modi a seconda delle necessità:
1 2 3 4 5 6 | <!-- solo shortcode --> [mio_shortcode] <!-- con attributi --> [mio_shortcode color='#000000'] <!-- con contenuto incluso --> [mio_shortcode color='#000000']Sono il contenuto[/mio_shortcode] |
Note: nel codice qui sopra ho dovuto inserire uno spazio nello shortcode di chiusura tra l’apertura della parentesi quadra e lo slash. Tale spazio andrà eliminato nel vostro codice. Tutto questo a causa di un conflitto con il plugin che uso per visualizzare il codice, in quanto anc’esso usa una sintassi simile a quella degli shortcode
Gestione degli attributi
Gli attributi inseriti in uno shortcode sono facilissimi da gestire ed è possibile impostare dei valore di default. Ecco ad esempio come creare uno shortcode che gestisca un titolo formattato in modo speciale:
1 2 3 4 5 6 7 8 |
Similmente a come abbiamo visto in WordPress: wp_parse_args() , la gestione degli attributi è davvero semplice e permette di impostare dei valori di default in caso di assenza degli attributi stessi. Il codice sopra esposto “fonde” l’array $attrs con quello dinamico tramite la funzione shortcode_atts() (cugina della wp_parse_args()), rendendo disponibile nello scope della funzione (vedi extract()) gli attributi come variabili. Gli attributi devono essere tutti in lowercase!
Gestione del contenuto
La modalità con il content è quella più versatile in particolari casi, ecco un esempio chiarificatore:
1 2 3 4 | function make_title_shortcode( $attrs, $content = null ) { return '<h1 title="' . $content . '"><span>' . $content . '</span></h1>'; } add_shortcode('my-title', 'make_title_shortcode'); |
Utilizzando lo shortcode nel nostro post:
1 | [my-title]Questo è un titolo[/my-title] |
Avremo come output:
Possiamo migliorare il nostro esempio introducento anche degli attributi per rendere più personalizzabile il nostro shortcode:
1 2 3 4 5 6 7 |
1 | [my-title class="color-red"]Questo è un titolo[/my-title] |
Come già indicato potete trovare molte informazioni sulla documentazine ufficiale di WordPress. Ecco qualche utile shortcode.
Mostrare AdSense nei post
Inserire il codice qui sotto nel vostro file functions.php. Cambiate i codice Google AdSense con i vostri.
1 2 3 4 5 6 7 8 9 10 11 12 | function show_adsense() { return '<script type="text/javascript"><!-- google_ad_client = "pub-9877654123213210"; google_ad_slot = "9876543210"; google_ad_width = 468; google_ad_height = 60; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> '; } add_shortcode('myadsense', 'adsense'); |
Nel posto basta inserire:
1 | [myadsense] |
Aggiungere note ad un post visibile solo dall’amministratore
Questo shortcode permette di aggiungere delle note ad un post visibili solo ad un amministratore.
1 2 3 4 5 6 | function admin_note( $attrs, $content = null ) { if ( current_user_can( 'publish_posts' ) ) return '<div class="admin-note">' . $content . '</div>'; return ''; } add_shortcode( 'admin-note', 'admin_note' ); |
1 | [note]Questa nota è visibile solo agli amministratori del blog[/note] |
Pubblicherò in futuro altri shortcode utili…











1

Come direbbero qui in America… Awesome! Non conoscevo questa cosa degli short codes in wordpress, io ho sempre fatto “a mano” col vecchio metodo. Grazie.
@camu: carissimo… effettivamente glishortcodes sono uno strumento davvero potente e utile, in molte occasioni. Apropos… mi sa che quest’anno non riuscirò a venire a farti un saluto, tuttavia conservo con cura i tuoi utilissimi consigli e cercherò di seguirli almeno per l’anno prossimo…
Assolutamente! Quando vuoi, sei il benvenuto
[...] approfondire consulta articolo originale: Undolog.com» WordPress: usare gli shortcodes Articoli correlati: FeedBurner IT – WordPress: usare gli [...]
Ottimo
o in questo modo avevo scritto un piccolo plugin bbcode