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():
-
/**
-
* 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à:
-
<!-- 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:
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:
-
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:
-
[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:
-
[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.
-
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:
-
[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.
-
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' );
-
[note]Questa nota è visibile solo agli amministratori del blog[/note]
Pubblicherò in futuro altri shortcode utili...










10

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