Guida completa allo sviluppo di temi per WordPress: un tutorial pratico per creare temi personalizzati da zero.

Leggere in 3 minuti.
2026-03-17
2026-06-03
2,819
Guadagno delle commissioni quando fai acquisti tramite i link qui sotto, senza alcun costo aggiuntivo per te.

Fundamenti dello sviluppo di temi per WordPress: L’ambiente di sviluppo e i concetti fondamentali

Prima di iniziare a codificare, è necessario creare un ambiente di sviluppo appropriato e comprendere la struttura di base di un tema per WordPress. L’ambiente di sviluppo locale rappresenta una scelta standard: si possono utilizzare strumenti come XAMPP, MAMP, Local by Flywheel o Docker. Questi strumenti permettono di sviluppare e testare i contenuti senza influenzare il sito web online.

Un tema WordPress è essenzialmente un insieme di file che definiscono l'aspetto e l'organizzazione di un sito web creato con WordPress./wp-content/themes/La cartella all’interno del directory deve contenere almeno due file principali.style.cssindex.phpTra questi,style.cssNon solo funge da foglio di stile, ma svolge anche il ruolo di “carta d’identità” del tema: le note presenti all’inizio del file definiscono il nome del tema, l’autore, la descrizione e altre informazioni metadati.

Comprendere la struttura gerarchica dei template in WordPress è fondamentale per lo sviluppo. WordPress seleziona automaticamente il file template appropriato in base al tipo della pagina che viene visualizzata (come la pagina iniziale, la pagina di un articolo, una pagina normale, l’archivio di una categoria, ecc.) per renderizzare il contenuto. Ad esempio, quando un utente accede a un singolo articolo, WordPress cerca il file template correlato in ordine preciso.single-post.phpsingle.phpE, infine,index.phpQuesto meccanismo ti permette di progettare layout unici per le diverse parti del sito web.

Si consiglia di leggere Guida definitiva allo sviluppo di temi per WordPress: un corso sistematico dall’introduzione alla pratica

Il file fondamentale per il tema

functions.phpIl file in questione riguarda il tuo tema “Control Center”. Non è un file obbligatorio, ma quasi tutti i temi ne fanno uso. All’interno di esso puoi aggiungere funzionalità personalizzate, registrare menu, creare barre laterali (aree per gli strumenti), inserire script e fogli di stile, nonché eseguire varie operazioni.add_actionadd_filterGli “hook” (ganci) servono per estendere o modificare il comportamento di base di WordPress. Questo file viene caricato automaticamente all’attivazione di un tema.

UltaHost – Hosting per siti WordPress
Garanzia di rimborso entro 30 giorni, larghezza di banda illimitata e accesso ai database, protezione gratuita contro gli attacchi DDoS; sconto del 50% per l’acquisto di un piano valido per 3 anni (da 3 a 4 TB di spazio di archiviazione).

Un altro documento di fondamentale importanza è…style.cssLe note presenti all’inizio del file costituiscono l’area dedicata alla dichiarazione del tema; il formato è il seguente:

/*
Theme Name: 我的自定义主题
Theme URI: https://example.com/my-theme
Author: 你的名字
Author URI: https://yourwebsite.com
Description: 一个用于学习的自定义WordPress主题。
Version: 1.0.0
License: GPL v2 or later
Text Domain: my-custom-theme
*/

Di questiText DomainUtilizzato per l’internazionalizzazione dei temi; consente di chiamare successivamente le funzioni di traduzione.__()_e()L’identificatore utilizzato in quel contesto.

La struttura di base e il modello per la creazione di un tema

La struttura tipica di un file tematico inizia dalla creazione di un modello di base. Prima di tutto…header.phpContiene la parte iniziale (header) del documento HTML.Le aree pubbliche, come il logo e il menu principale, presenti sia nella sezione regionale che in cima al sito web.wp_head()La funzione principale di questo file è quella di generare i script e i file di stile necessari al funzionamento del core di WordPress nonché dei suoi plugin.

corrispondentefooter.phpQuindi include l’area comune in basso del sito web e esegue l’ultima chiamata (call) alla fine del processo.wp_footer()Il contenuto principale del sito web è racchiuso tra questa “testa” e questa “coda”.

Si consiglia di leggere Sviluppo di temi per WordPress: Una guida completa per creare temi personalizzati da zero

Il template core per la pagina di assemblaggio

index.phpQuesto è il modello di base per il tuo progetto; rappresenta anche l’opzione di ultima risorsa quando non sono disponibili modelli più specifici. Il suo compito principale è quello di assemblare tutte le componenti del progetto. Un esempio classico…index.phpLa struttura è la seguente:

<?php get_header(); ?>

<main id="primary" class="site-main">
    <?php
    if ( have_posts() ) :
        while ( have_posts() ) :
            the_post();
            // 展示每篇文章的内容
            get_template_part( 'template-parts/content', get_post_type() );
        endwhile;
        the_posts_navigation();
    else :
        get_template_part( 'template-parts/content', 'none' );
    endif;
    ?>
</main>

<?php get_sidebar(); // 如果不需要侧边栏,可以删除此行 ?>
<?php get_footer(); ?>

Questo template utilizza il ciclo principale di WordPress (The Loop) per iterare e visualizzare l’elenco degli articoli. Al fine di mantenere il codice modulare e facilmente gestibile, abbiamo adottato…get_template_part()Una funzione per richiamare file di template di contenuto indipendenti.

Creare modelli di contenuto riutilizzabili

Di solito, creiamo un file all’interno della directory dedicata ai temi (theme directory).template-partsUna cartella, in cui si conservano file e altri elementi.content.phpUn file di questo tipo si concentra su come visualizzare un riassunto o il testo completo di un articolo o di una pagina.

hosting.com Hosting condiviso
Prestazioni elevate con CPU AMD EPYC, storage SSD NVMe e LiteSpeed, supporto interno di esperti 24 ore su 24, 7 giorni su 7, misure di sicurezza avanzate, tra cui SSL, brute force, malware e protezione DDoS, risparmi fino a 73%
<article id="post-<?php the_ID(); ?>" no numeric noise key 1003>
    <header class="entry-header">
        <h2 class="entry-title">
            <a href="/it/</?php the_permalink(); ?>" rel="bookmark"><p><strong>Questo testo verrà sostituito dal titolo dell'articolo corrente.</strong></p></a>
        </h2>
    </header>
    <div class="entry-content">
        <?php the_excerpt(); ?>
    </div>
</article>

In questo modo, puoi facilmente gestire diversi tipi di articoli (ad esempio…).postpageCreare diversi modelli di contenuto (ad esempio…)content-post.phpcontent-page.phpIl sistema effettuerà il corrispondimento automatico.

Aggiungi le funzionalità principali al tuo tema.

I file funzionali rappresentano l’elemento chiave che permette al tuo tema di passare da un modello statico a un’applicazione dinamica.functions.phpIn questo contesto, è necessario montare sistematicamente diverse funzionalità del sistema.

Il supporto fondamentale per l’inizializzazione dei temi

Il primo passo è utilizzare…after_setup_themeGli “hook” (ganci) vengono utilizzati per dichiarare le funzionalità supportate dal tema. Essi informano WordPress su quali caratteristiche il tuo tema è in grado di utilizzare.

Si consiglia di leggere Analisi approfondita dello sviluppo di temi per WordPress: una guida pratica completa dall’introduzione all’espertizzazione

add_action( 'after_setup_theme', 'my_theme_setup' );
function my_theme_setup() {
    // 让主题支持自动生成<title>标签
    add_theme_support( 'title-tag' );
    // 支持文章特色图像
    add_theme_support( 'post-thumbnails' );
    // 支持HTML5的语义化标记
    add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' ) );
    // 支持自定义Logo
    add_theme_support( 'custom-logo', array(
        'height'      => 100,
        'width'       => 400,
        'flex-height' => true,
        'flex-width'  => true,
    ) );
    // 注册一个导航菜单位置
    register_nav_menus( array(
        'menu-1' => esc_html__( '主导航', 'my-custom-theme' ),
    ) );
}

Gestione di script e fogli di stile

Inserire correttamente i file CSS e JavaScript nella coda di elaborazione è un requisito fondamentale per lo sviluppo professionale. Dovresti utilizzare gli strumenti adeguati per gestire questo processo.wp_enqueue_scriptsUtilizzare dei “ganci” (hook) per svolgere questo lavoro, invece di scrivere direttamente nel template.Tag:

add_action( 'wp_enqueue_scripts', 'my_theme_scripts' );
function my_theme_scripts() {
    // 引入主题的主样式表
    wp_enqueue_style( 'my-theme-style', get_stylesheet_uri(), array(), wp_get_theme()->get('Version') );

// 引入自定义的JavaScript文件
    wp_enqueue_script( 'my-theme-navigation', get_template_directory_uri() . '/js/navigation.js', array(), wp_get_theme()->get('Version'), true );

// 如果需要使用jQuery(通常由WordPress核心提供),可以声明依赖
    wp_enqueue_script( 'my-theme-custom', get_template_directory_uri() . '/js/custom.js', array('jquery'), wp_get_theme()->get('Version'), true );
}

Area di registrazione degli strumenti aggiuntivi

Anche le aree per gli strumenti presenti nella barra laterale o nella parte inferiore della pagina devono essere incluse.functions.phpRegistrazione presso… Utilizzo:widgets_initGancio:

Hosting condiviso InterServer
Hosting condiviso $2,50 USD al mese, primo mese $0,1 USD codice promozionale tryinterserver, 461 script di applicazioni cloud, installazione con un clic.
add_action( 'widgets_init', 'my_theme_widgets_init' );
function my_theme_widgets_init() {
    register_sidebar( array(
        'name'          =&gt; esc_html__( '侧边栏', 'my-custom-theme' ),
        'id'            =&gt; 'sidebar-1',
        'description'   =&gt; esc_html__( '在此添加小工具。', 'my-custom-theme' ),
        'before_widget' =&gt; '<section id="%1$s" class="widget %2$s">',
        'after_widget'  =&gt; '</section>',
        'before_title'  =&gt; '<h2 class="widget-title">',
        'after_title'   =&gt; '</h2>',
    ) );
}

Dopo l’iscrizione, potrai utilizzare questi strumenti all’interno dei modelli.dynamic_sidebar( 'sidebar-1' )get_sidebar()La funzione è stata utilizzata per chiamarlo.

Sviluppo avanzato e funzionalità personalizzate

Una volta completata la struttura di base del tema, è possibile utilizzare tecniche più avanzate per migliorarne la professionalità e la flessibilità.

Creare un modello di pagina personalizzato.

I template di pagina ti permettono di conferire a una pagina specifica un layout unico e personalizzato. Crea un file, ad esempio…page-fullwidth.phpAggiungere nella parte iniziale del file la seguente nota con il nome del template:

<?php
/**
 * Template Name: 全宽页面
 * Description: 一个没有侧边栏的全宽页面模板。
 */
get_header(); ?>
<main class="full-width">
    <?php while ( have_posts() ) : the_post(); ?>
        <article id="post-<?php the_ID(); ?>" no numeric noise key 1004>
            <h1><p><strong>Questo testo verrà sostituito dal titolo dell'articolo corrente.</strong></p></h1>
            <div class="entry-content">
                <p><strong>Questo testo è stato tradotto automaticamente. Se desideri una traduzione corretta, contattaci.</strong></p>
            </div>
        </article>
    <?php endwhile; ?>
</main>
<?php get_footer(); ?>

Quando si crea o si modifica una pagina, è possibile selezionare questo modello di pagina a larghezza piena (“Full Width Page”) nelle “Proprietà della pagina” (Page Properties).

Implementare il supporto per i personalizzatori di tema.

Il WordPress Customizer offre agli utenti un’interfaccia di configurazione con visualizzazioni in tempo reale. È possibile utilizzarlo per…customize_registerGli “hook” permettono di aggiungere facilmente opzioni di configurazione, ad esempio il testo del copyright nella parte inferiore della pagina.

add_action( 'customize_register', 'my_theme_customize_register' );
function my_theme_customize_register( $wp_customize ) {
    // 添加一个设置项
    $wp_customize->add_setting( 'footer_copyright_text', array(
        'default'           => '© 2026 我的网站. 保留所有权利。',
        'sanitize_callback' => 'sanitize_text_field',
        'transport'         => 'postMessage', // 支持实时预览
    ) );

// 为设置项添加一个控件(输入框)
    $wp_customize->add_control( 'footer_copyright_text', array(
        'label'    => __( '页脚版权文本', 'my-custom-theme' ),
        'section'  => 'title_tagline', // 放到“站点身份”区域
        'type'     => 'text',
    ) );
}

E poi…footer.phpIn cinese, usareget_theme_mod( 'footer_copyright_text' )Esegui l’operazione per ottenere questo valore.

Introdurre i flussi di lavoro moderni per lo sviluppo front-end

Per argomenti complessi, la gestione manuale dei file CSS e JS diventa inefficiente. Potresti considerare l’uso di Node.js e di strumenti di build, come Webpack o Vite, per pacchettizzare i risorse, compilare i file Sass/Less, aggiungere automaticamente i prefissi necessari per i browser, comprimere il codice, ecc. Di solito, questo richiede la creazione di una directory principale (root directory) dedicata al tema in questione.package.jsonCreare i file di configurazione e salvare il file risultante nella directory specifica del tema (ad esempio: /themes/my-theme/config)./assets/dist/…) e poi…functions.phpInserisci questi file generati nel codice sorgente.

Riassumendo

Lo sviluppo di temi per WordPress inizia dalla comprensione dei livelli dei modelli di base e della struttura dei file, per poi procedere gradualmente alla creazione dei file di template, all’integrazione di funzionalità e, infine, all’ottimizzazione tramite personalizzazioni avanzate e strumenti dedicati. Il punto chiave è seguire gli standard di codifica e le migliori pratiche di WordPress: utilizzare correttamente le funzioni di hook, inserire i script e gli stili nel “coda di esecuzione” (queue), e mantenere il codice ordinato grazie all’uso di componenti predefiniti (template parts). Partendo da una struttura semplice…index.phpstyle.cssInizia aggiungendo gradualmente…header.phpfooter.phpIn…functions.phpDalla attivazione delle funzionalità principali all’creazione di modelli personalizzati e opzioni di personalizzazione, ogni passo rende il tuo tema più potente e facile da utilizzare. Una volta acquisite queste competenze, sarai in grado di creare temi per WordPress di alta qualità che soddisfino le esigenze più varie.

FAQ - Domande frequenti

Per sviluppare temi per WordPress è necessario conoscere PHP?

Sì, PHP è la lingua fondamentale per lo sviluppo di temi per WordPress. È necessario padroneggiare almeno la grammatica di base di PHP e comprendere come interagire con le funzioni di base di WordPress.the_post()the_title()) e le variabili globali (come…).$postInterazione con l’utente, nonché il modo in cui utilizzare gli “action hooks” e gli “filter hooks”. HTML e CSS sono essenziali per creare l’aspetto visivo di un sito web, mentre JavaScript è utilizzato per le funzionalità interattive.

Perché i cambiamenti apportati al mio tema non vengono visualizzati dopo il raffresco della pagina?

Di solito, questo problema è causato dal cache del browser o dal cache degli oggetti di WordPress. Prima di tutto, prova a eseguire un aggiornamento forzato del sito nel browser premendo Ctrl+F5 (o Cmd+Shift+R). Inoltre, se…functions.phpLa versione introdotta include il controllo delle versioni (come…).wp_get_theme()->get('Version')Assicurati di aggiornare i contenuti ogni volta che vengono apportate modifiche.style.cssIl numero di versione presente nell’intestazione del file. Inoltre, verifica se il tuo codice contiene errori di sintassi che potrebbero causare problemi.functions.phpL’esecuzione del file è fallita.

Come posso rendere il mio tema compatibile con più lingue?

Devi fare due cose: la prima è l“”internazionalizzazione“, la seconda è la ”localizzazione”. Prima di tutto, in tutti i punti del tema in cui sono presenti stringhe da tradurre, utilizza le funzioni di traduzione di WordPress.esc_html__(‘文本’, ‘my-text-domain’)_e(‘文本’, ‘my-text-domain’)E assicurarsi che…style.cssDefinito in cineseText DomainConformarsi ai requisiti dei campi di testo presenti in questo documento. Successivamente, utilizzare strumenti come Poedit per analizzare il proprio tema e generare il contenuto necessario..potIl file di template di traduzione consente ai traduttori di creare i file corrispondenti per la lingua desiderata..poE quello compilato….moI documenti, collocati sotto il tema/languages/La modifica avrà effetto immediatamente all’interno della directory.

In che modo dovrebbero essere suddivise le funzionalità tra i temi (themes) e i plugin?

Un principio semplice è il seguente: i temi controllano l’aspetto e la visualizzazione del sito web, mentre i plugin ne gestiscono le funzionalità e il comportamento. Nello specifico, gli elementi direttamente legati alla rappresentazione visiva (come la disposizione dei contenuti, i colori, i font, i template) devono essere inclusi nei temi stessi. Le funzionalità, invece, che possono esistere indipendentemente dai temi (come i moduli di contatto, le ottimizzazioni per i motori di ricerca SEO, le funzionalità di e-commerce, i meccanismi di caching per migliorare le prestazioni del sito) devono essere realizzate come plugin. In questo modo, quando un utente cambia tema, le funzionalità essenziali vengono mantenute, aumentando così la flessibilità del sito e la riutilizzabilità del codice.