Pubblicato il 26 Aprile 2020, aggiornato il 30 Marzo 2021
In questa guida voglio mostrarti come creare shortcode con attributi personalizzati per WordPress.
Se vuoi sapere come si crea uno shortcode per WordrPress puoi seguire i consigli di questa guida
Gli attributi sono stati creati per rendere tutto più dinamico infatti, grazie a loro, è possibile passare dei valori direttamente alla funzione.
Come creare shortcode con attributi in WordPress
Gli shortcode con attributi hanno la seguente sintassi:
[my_shortcode_name attributo="valore"]
Gli attributi non sono gli unici parametri passati alla funzione in automatico ma vengono passati anche:
$atts – un array associativo che contiene gli attributi, oppure una stringa vuota se non sono presenti attributi nel tuo shortcode
$content – il contenuto racchiuso dallo shortcode (solo nella forma con contenuto)
$tag – il nome dello shortcode, utile per funzioni di callback condivise
Per passare gli attributi alla funzione possiamo sfruttare l’array $atts di WordPress e la funzione shortcode_atts() del core in questo modo:
[my_shortcode_name attr_1="valore" attr_2="valore"] <?php function my_function($atts) { ob_start(); extract( shortcode_atts( array( 'attr_1' => 'attributo 1 default', 'attr_2' => 'attributo 2 default', ), $atts ) ); $content = ob_get_clean(); return $content; } add_shortcode('my_shortcode_name', 'my_function'); ?>
I valori degli attributi dichiarati nella funzione shortcode_atts() sono quelli che utilizzerà di default nel caso in cui non vengano impostato alcun valore nello shortcode.
Ricorda di passare l’array $atts come parametro della funzione del tuo shortcode.
L’array $atts contiene tutti i valori degli attributi ma se non ne vengono passati allora verranno utilizzati quelli di default.
Per utilizzarli nella funzione è sufficiente chiamarli così:
$atts[attr_1];
Gli shortcode possono anche racchiudere un contenuto che verrà passato alla funzione. Basta dichiararlo nello shortcode e richiamarlo nella funzione usando la variabile $content, in questo modo:
[my_shortcode_name]Contenuto da mostrare[/my_shortcode_name]
Notare il tag di chiusura dopo il contenuto.
Anche in questo caso possiamo utilizzare la variabile $content per richiamare il contenuto presente fra i due tag del nostro shortcode in questo modo:
function my_function($atts, $content = null) { ob_start(); extract( shortcode_atts( array( 'attr_1' => 'attributo 1 default', 'attr_2' => 'attributo 2 default', ), $atts ) ); $content = ob_get_clean(); return $content; } add_shortcode('my_shortcode_name', 'my_function');
È bene anche in questo caso inserire un valore di default che verrà sovrascritto nel caso in cui sia effettivamente presente un contenuto fra i due tag.
Ti lascio uno strumento gratuito per generare gli shortcode disponibile a questo link
Perché non sviluppare un plugin personalizzato e inserire lì il codice che ti serve ora che sai come creare i tuoi shortcode?
Leggi anche...
Come creare modulo di contatto in HTML
Preventivo sempre gratuito
Fabio Fresia, fondatore e titolare di Eureka Web di Asti
366 - 400 9542 info@agenziawebeureka.it