Sabato
19
Marzo 2022
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?
Scrivi un commento