Come sappiamo, la funzione get_template_part(), ci mette a disposizione un meccanismo semplice per creare delle sezioni riusabili all’interno del nostro tema. Questa funzione, sotto al cofano, utilizza la funzione require() di PHP (e non require_once()), in modo da poterla utilizzare anche più volte nella stessa pagina.

La funzione get_template_part(), però, non supporta il passaggio di variabili. Perciò, se volessimo utilizzare nella parte inclusa delle variabili definite nella pagina del template, non possiamo. WordPress non offre una funzione specifica per questa situazione, ma possiamo risolvere in due modi, aggirando quindi il problema.

Metodo 1: una funzione supplementare

Scriviamo una funzione che estende le funzionalità di get_template_part(), che accetta i primi due parametri in modo analogo all’originale, ma aggiunge un terzo parametro array, al quale passeremo appunto le variabili che ci serve passare:

Per esempio: devdev_get_template_part("blocco-chisiamo",'chisiamo', array('messaggio' => 'prova'));

A questo punto, all’interno di blocco-chisiamo.php  potremmo usare $messaggio.

Metodo 2: le costanti di PHP

Questo metodo è per scenari più semplici, dove non è necessario reinventare la ruota. Semplicemente, prima di utilizzare la funzione get_template_part(), definiamo una o più costanti:

Nel file  blocco-chisiamo.php  potremmo utilizzare adesso la costante appena dichiarata. Facciamo attenzione a non creare override con le costanti di sistema: utilizziamo, magari, un prefisso per il nostro tema.

Cosa non utilizzare

Le globali sono molto utilizzate in WordPress, ma in genere è meglio evitarle .

Le Query vars ( get_query_vars() e set_query_vars()) non sono fatte per questo scopo, sono un workaround.. ma come vi ho dimostrato ci sono soluzioni più semplici ed eleganti.