Introduzione allo sviluppo di temi per WordPress: costruisci il tuo primo tema personalizzato da zero

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

Preparazioni: Creare un ambiente tematico completo.

Prima di iniziare a scrivere qualsiasi codice, è fondamentale creare un ambiente di sviluppo ben strutturato per garantire il successo del progetto. Per prima cosa, è necessario installare WordPress sia localmente che su un server remoto. Successivamente, è opportuno creare una directory dedicata all’archiviazione dei temi, posizionandola all’interno della directory di installazione di WordPress. /wp-content/themes/ Sì. Creeremo qualcosa chiamato… my-first-theme Un nuovo folder: questo è il directory principale del nostro tema personalizzato.

Un tema WordPress di base richiede soltanto due file per essere riconosciuto dal sistema. Il primo di questi file è il file delle impostazioni grafiche (il cosiddetto “style sheet”). style.cssNon si tratta soltanto di definire l’aspetto del sito: le informazioni presenti nelle note in testa costituiscono, in realtà, il “cartellino d’identità” del tema, contenendo metadati come il nome del tema, l’autore e una descrizione. Il secondo elemento menzionato è il file del modello principale (il template principale del sito). index.phpÈ il file del template di ingresso predefinito per WordPress.

Diamo inizio alla creazione… style.css Il file, in cui vengono scritte le informazioni di intestazione necessarie.

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

/*
Theme Name: My First Theme
Theme URI: http://example.com/my-first-theme/
Author: 你的名字
Author URI: http://example.com/
Description: 这是我开发的第一个 WordPress 主题,用于学习和实践。
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my-first-theme
*/

/* 以下是正式的样式内容 */
body {
    font-family: Arial, sans-serif;
    line-height: 1.6;
    margin: 0;
    padding: 20px;
}

Successivamente, creeremo la versione più basilare di… index.php Il file può essere molto semplice e utilizzato soltanto per verificare se un determinato argomento (o tema) viene riconosciuto correttamente.

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).
<!DOCTYPE html>
<html no numeric noise key 1004>
<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <p><strong>Questo è un testo di prova</strong></p>
</head>
<body no numeric noise key 1001>
    <h1>Ciao, mondo! Questo è il mio primo tema.</h1>
    <p><strong>Questo è un testo di esempio.</strong></p>
</body>
</html>

Dopo aver completato questi due file, fai login nel pannello di amministrazione di WordPress e vai alla sezione “Aspetto” -> “Temi”. Lì dovresti vedere il tema “My First Theme” che abbiamo appena creato. Attivalo, quindi visita la pagina principale del sito: vedrai il risultato più semplice possibile. Questo segna il completamento della creazione del tuo framework tematico.

Comprendere il file del modello principale e la sua struttura gerarchica

WordPress utilizza una gerarchia di template (Template Hierarchy) per determinare quale file di template utilizzare per rendere e visualizzare le diverse pagine richieste dagli utenti. Comprendere queste regole è fondamentale per lo sviluppo di temi personalizzati. In parole semplici, quando un utente accede a una pagina specifica, WordPress cerca il file di template corrispondente seguendo un ordine di priorità prestabilito. Il livello più base di questa gerarchia… index.phpÈ l’opzione di ritorno finale per tutte le pagine.

Ad esempio, quando si accede a un singolo contenuto di un articolo del blog, WordPress cerca innanzitutto… single-post.phpSe non esiste, allora cercare… single.phpSe non è già disponibile, allora verrà utilizzato. index.phpPer la pagina che mostra l’elenco degli articoli, verrà effettuata una ricerca sequenziale… home.phpfront-page.phpindex.php

Per realizzare un tema per un blog completo e funzionale, dobbiamo creare almeno i seguenti file di template chiave:header.php(Come parte del titolo della pagina del sito web)footer.php(Nella parte inferiore della pagina del sito web)sidebar.php(Side bar, opzionale)index.php(Indice del contenuto principale)single.php(Un singolo articolo)page.php(Single page) E style.css(Style sheet).

Si consiglia di leggere Come sviluppare da zero un tema personalizzato per WordPress?

Attraverso get_header()get_footer()get_sidebar() Con queste funzioni template, possiamo modularizzare il codice generico, permettendo così il suo riutilizzo. Il file del template principale è… index.php La struttura diventerà quindi molto chiara.

<?php get_header(); ?>

<main id="main-content">
    <?php
    if ( have_posts() ) :
        while ( have_posts() ) : the_post();
            // 循环输出文章内容
        endwhile;
    else :
        // 没有找到内容的提示
    endif;
    ?>
</main>

<?php get_sidebar(); ?>
<?php get_footer(); ?>

Questo approccio modulare non solo rende il codice più facile da mantenere, ma ti permette anche di creare facilmente intestazioni e piedini personalizzati per diversi tipi di pagine.

Sviluppo pratico: Creazione del ciclo principale e richiamo del contenuto dell’articolo

Il nucleo di qualsiasi tema per blog è il cosiddetto “The Loop” (Il Ciclo). Si tratta di una struttura di codice PHP utilizzata da WordPress per recuperare i contenuti degli articoli dal database e visualizzarli sulle pagine web. All’interno di questo ciclo è possibile utilizzare una serie di “Template Tags” (Etichette di Template) per visualizzare informazioni come il titolo dell’articolo, il testo, l’autore, la data di pubblicazione, e altro ancora.

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%

Costruiamo quindi la versione più basilare di…index.phpI file vengono utilizzati per visualizzare l’elenco degli articoli nel ciclo principale del programma.

<p><strong>Questo è un testo di esempio.</strong></p>

<div class="content-area">
    <main class="site-main">
        <?php if ( have_posts() ) : ?>
            <header class="page-header">
                <h1 class="page-title">Articoli più recenti</h1>
            </header>
            <?php
            while ( have_posts() ) : the_post();
            ?>
                <article no numeric noise key 1011 id="post-<?php the_ID(); ?>">
                    <h2 class="entry-title">
                        <a href="/it/</?php the_permalink(); ?>">
                            <p><strong>Questo testo verrà sostituito dal titolo dell'articolo corrente.</strong></p>
                        </a>
                    </h2>
                    <div class="entry-meta">
                        Pubblicato il:<time datetime="<?php echo get_the_date( 'c' ); ?>"><?php echo get_the_date(); ?></time> | 作者:
                    </div>
                    <div class="entry-content">
                        <?php the_excerpt(); // 输出文章摘要 ?>
                    </div>
                </article>
            <?php
            endwhile;
            // 输出分页导航
            the_posts_navigation();
        else :
            ?>
            <p>Mi dispiace, non è stato trovato alcun articolo.</p>
        <?php endif; ?>
    </main>
    <?php get_sidebar(); ?>
</div>

<?php get_footer(); ?>

Nel codice sopra, abbiamo utilizzato… have_posts()the_post() Per costruire un ciclo, utilizziamo i tag di template appropriati. the_title()the_permalink()the_excerpt() Vengono utilizzati per generare il contenuto corrispondente.post_class() La funzione genera automaticamente una serie di classi CSS molto utili per il contenitore dell’articolo, facilitando il nostro lavoro di progettazione grafica.

Per un singolo articolo, dobbiamo creare… single.phpLa sua struttura è simile a quella di una pagina di indice, ma di solito mostra un solo articolo in modo ciclico, presentandone il contenuto completo.the_content())。

Si consiglia di leggere Guida all’approccio di base allo sviluppo di temi per WordPress: costruire un tema personalizzato da zero

<?php get_header(); ?>

<main id="primary">
    <?php
    while ( have_posts() ) : the_post();
        get_template_part( 'template-parts/content', 'single' );
    endwhile;
    ?>
</main>

<?php get_sidebar(); ?>
<?php get_footer(); ?>

Qui viene introdotta una funzione più potente. get_template_part()Viene utilizzato per caricare un altro file contenente frammenti di template situato nella directory dei temi. Ad esempio,get_template_part( 'template-parts/content', 'single' ); Verrà caricato in modo prioritario. template-parts/content-single.php Il file verrà caricato se non esiste. template-parts/content.phpQuesto ha ulteriormente migliorato l’organizzazione e la riutilizzabilità del codice.

Rafforzamento delle funzionalità tematiche e migliori pratiche di utilizzo

Una volta che un tema di base è stato definito, possiamo renderlo più potente e affidabile aggiungendo file relativi alle funzionalità del tema e seguendo le migliori pratiche di sviluppo. Uno dei file più importanti in questo processo è… functions.php

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.

Il tema delfunctions.phpIl file non è obbligatorio, ma ti consente di aggiungere funzionalità al tuo tema, di registrare nuove caratteristiche (features) e di interagire con l’API di base di WordPress. Si può considerare una sorta di “plugin” per il tuo tema, ma è comunque legato direttamente a esso. Qui, ciò che devi fare è registrare le nuove funzionalità e specificarne i dettagli, piuttosto che semplicemente visualizzare il contenuto.

Un standard…functions.phpDovrebbe contenere i seguenti elementi:

1. Menù di registrazione: utilizzare register_nav_menus() Funzione.
2. Barra laterale di registrazione: utilizzarla. register_sidebar() Funzione.
3. Aggiunta della supporto per i temi: utilizzare… add_theme_support() Esistono funzioni per abilitare funzionalità chiave come le immagini di rilievo presenti negli articoli o i loghi personalizzati.
4. Carica gli stili e i script: utilizza… wp_enqueue_style()wp_enqueue_script() Funzione, e utilizzarla correttamente. wp_enqueue_scripts Gancio.

__( '主导航菜单', 'my-first-theme' ),
    ) );
}
add_action( 'after_setup_theme', 'my_first_theme_setup' );

function my_first_theme_scripts() {
    // 加载主样式表
    wp_enqueue_style( 'my-first-theme-style', get_stylesheet_uri() );
    // 加载谷歌字体
    wp_enqueue_style( 'my-first-theme-google-fonts', 'https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&amp;display=swap', array(), null );
    // 加载主 JavaScript 文件
    wp_enqueue_script( 'my-first-theme-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_first_theme_scripts' );

// 注册一个右侧边栏
function my_first_theme_widgets_init() {
    register_sidebar( array(
        'name'          =&gt; __( '主侧边栏', 'my-first-theme' ),
        'id'            =&gt; 'sidebar-1',
        'description'   =&gt; __( '在此添加小工具。', 'my-first-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>',
    ) );
}
add_action( 'widgets_init', 'my_first_theme_widgets_init' );
?&gt;

Segui queste migliori pratiche: ad esempio, aggiungi funzionalità tramite “hook”, carica i risorse in modo corretto e sequenziale, e utilizza le funzioni di traduzione. __()_e() Per rendere il tema internazionale, è necessario assicurarsi che sia sicuro, efficiente e conforme agli standard di sviluppo ufficiali di WordPress.

Riassumendo

Dall’istante in cui viene creato… style.cssindex.php Partendo dalle cartelle di base del tema, hai completato il percorso principale per creare un tema personalizzato per WordPress. Abbiamo analizzato in dettaglio il sistema di gerarchia dei template, capendo come WordPress selezioni automaticamente i file di template appropriati per rendere le varie pagine. Abbiamo praticato la creazione del ciclo principale del tema (main loop) e imparato a utilizzare diversi tag di template per generare contenuti in modo dinamico. Infine… functions.php Questo aggiornamento ha fornito alla piattaforma funzionalità più potenti e un livello di standardizzazione più elevato. Anche se si tratta solo di un punto di partenza, ti apre le porte per ulteriori esplorazioni: potrai aggiungere ulteriori file di template, stili più ricchi e funzionalità interattive, al fine di creare un sito web unico che risponda perfettamente alle tue esigenze o a quelle dei tuoi clienti.

FAQ - Domande frequenti

È necessario conoscere PHP per lo sviluppo di applicazioni tematiche?

Sì, per sviluppare in modo approfondito i temi per WordPress è necessario possedere una certa conoscenza di PHP. Poiché WordPress è sviluppato in PHP, tutti i file di template, le chiamate di funzioni e la logica di elaborazione dei dati dipendono da questo linguaggio di programmazione. Per i principianti, è essenziale padroneggiare la grammatica di base di PHP, nonché concetti come variabili, array, cicli, condizioni e funzioni.

Come posso adattare il mio tema ai dispositivi mobili?

Rendere un sito web responsive (adattabile a diversi tipi di schermi) è un requisito fondamentale per i siti web moderni. È necessario utilizzare le cosiddette “Media Queries” presenti in CSS per modificare il layout e lo stile del sito in base alla larghezza dello schermo visualizzato dall’utente. Durante lo sviluppo, è consigliabile adottare una strategia basata sull’“priorità per i dispositivi mobili” (mobile-first): inizialmente si creano gli stili adatti ai piccoli schermi, per poi aggiungere o modificare ulteriori elementi dello stile per schermi più grandi tramite le Media Queries.

Qual è il modo migliore per sviluppare e testare temi (temi per applicazioni o siti web)?

Si consiglia vivamente di sviluppare i temi per il sito web nell’ambiente di sviluppo locale. Utilizzando strumenti come Local by Flywheel, XAMPP, MAMP o Docker per creare un ambiente server locale, è possibile effettuare iterazioni e test in modo rapido, senza influenzare il sito web online. Inoltre, è opportuno abilitare le funzionalità di sviluppo fornite da WordPress. WP_DEBUG I modi di visualizzazione degli errori e degli avvisi in PHP sono estremamente importanti: permettono di far apparire tali informazioni sullo schermo, facilitando così l’identificazione e la correzione tempestiva di problemi nel codice.

Quali tecnologie front-end devo padroneggiare?

Oltre a PHP, è necessario padroneggiare anche HTML e CSS, che costituiscono le basi per la creazione della struttura e dello stile dei siti web. Per interazioni più complesse e effetti dinamici, conoscere JavaScript è fondamentale. In particolare, è importante imparare come introdurre e utilizzare correttamente i file JavaScript in WordPress in modo sicuro. wp_enqueue_scriptInoltre, è necessario imparare a utilizzare la libreria JavaScript inclusa in WordPress.