Hai avuto a che fare con un tema classico di WordPress e non hai capito bene quando usare get_template_part() invece di include()?
Vediamo le differenze.
Differenze tra get_template_part() e include()
La funzione include() è una funzione nativa di PHP, è slegata dalla logica di WordPress.
Serve per Inserire il contenuto di un file esattamente così com’è.
Viene utilizzata per file di utilità (es. funzioni custom, configurazioni, librerie interne).
La funzione get_template_part() è una funzione esclusiva di WordPress.
Serve per includere blocchi di template riutilizzabili (es. loop, header, sidebar, content).
E soprattutto, rispetta la gerarchia dei temi, quindi se il file esiste nel child theme, userà quello.
Supporta varianti di template.
Ad esempio:
get_template_part( 'content', 'single' )cerca il filecontent-single.php.get_template_part( 'content', 'page' )cerca il filecontent-page.php.
Viene utilizzata per parti di layout che devono essere modulabili e sovrascrivibili.
Ecco un esempio di utilizzo di get_template_part():
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
get_template_part( 'template-parts/content', get_post_type() );
}
}
WordPress cercherà in automatico:
template-parts/content-post.phpper i post standard,template-parts/content.phpcome fallback per tutti gli altri tipi di contenuto.
Se esiste un child theme con un file content-post.php, verrà caricato quello.
Con include() il codice diventerebbe:
include get_template_directory() . '/template-parts/content.php';
In questo caso, il percorso è fisso.
Non avremo nessun fallback e nessuna possibilità di sovrascrittura da parte del child theme.
Viene usato per includere la logica interna o uno script PHP.
Ad esempio creo il file inc/custom-functions.php.
<?php
// Funzione personalizzata per stampare la data in formato italiano
function stampa_data_it() {
echo date_i18n( 'j F Y' ); // Es. "24 settembre 2025"
}
E nel file functions.php del tema uso questo codice per includere il file inc/custom-functions.php.
<?php
// Includo il file di funzioni personalizzate
include get_template_directory() . '/inc/custom-functions.php';
Ora posso usare questa funzione all’interno del mio tema, ad esempio nel footer.php:
<p>Ultimo aggiornamento: <?php stampa_data_it(); ?></p>
Quando usare l’uno o l’altro
- Usa
get_template_part()per parti di layout riutilizzabili, dove è utile mantenere compatibilità con la gerarchia dei temi e permettere modifiche tramite child theme. - Usa
include()per file di logica interna o script PHP che non hanno a che fare con la struttura del tema.


