Guida completa allo sviluppo di plugin per WordPress: dall’approccio iniziale alla creazione di funzionalità personalizzate avanzate

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

Perché scegliere di sviluppare plugin per WordPress?

WordPress, come il sistema di gestione dei contenuti più popolare al mondo, deve la sua notevole estensibilità soprattutto ai plugin. Sviluppando plugin personalizzati, gli sviluppatori possono aggiungere alle proprie siti qualsiasi funzionalità sia necessaria, senza dover modificare il codice sorgente principale. Questo garantisce la sicurezza delle aggiornamenti e l’indipendenza delle funzionalità del sito stesso. Sia che si tratti di soddisfare esigenze aziendali specifiche, di ottimizzare i flussi di lavoro o di creare nuovi prodotti all’interno dell’ampia comunità di WordPress, lo sviluppo di plugin rappresenta una competenza di grande valore.

Rispetto a quelli che modificano direttamente l’argomento in questione…functions.phpRispetto ai file tradizionali, i plugin incapsulano la logica funzionale in moduli indipendenti. Questo significa che, anche in caso di cambio di tema, le funzionalità fornite dal plugin continuano a funzionare correttamente. Inoltre, un plugin ben strutturato può essere facilmente migrato e riutilizzato su diversi siti, migliorando notevolmente l’efficienza dello sviluppo.

Crea il tuo primo plugin.

Il primo passo nell’iniziare lo sviluppo di un plugin è comprendere la struttura di base di un plugin. Tutti i plugin per WordPress vengono archiviati in una determinata directory all’interno del file system di WordPress./wp-content/plugins/Nella directory, ogni plug-in ha una propria cartella indipendente.

Si consiglia di leggere Guida all’approccio di base allo sviluppo di plugin per WordPress: crea il tuo primo plugin da zero

Creare il file principale del plugin

Il nucleo del plugin è un file principale scritto in PHP. Devi creare una nuova cartella, ad esempio…my-first-pluginE creare al suo interno un file PHP con lo stesso nome della cartella:my-first-plugin.phpLe note presenti nella parte iniziale di questo file sono di fondamentale importanza: forniscono a WordPress le informazioni di metadati relative al plugin.

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).
<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个用于学习插件开发的示例插件。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://example.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

Dopo aver salvato questo file, potrai trovarlo e attivarlo sulla pagina “Plugin” nell’interfaccia di amministrazione di WordPress. Anche se al momento non dispone di alcuna funzionalità, hai comunque creato con successo un framework per plugin valido e conforme alle normative di WordPress.

Aggiungere funzionalità di base al plugin

Dopo aver attivato il plugin, possiamo iniziare ad aggiungere funzionalità semplici a esso. Un esempio comune per iniziare è l’aggiunta di una riga di testo personalizzato nella parte inferiore della pagina del sito web. Questo può essere fatto utilizzando…wp_footerQuesto meccanismo di funzionamento (Action Hook) viene utilizzato per realizzarlo.

Nel file principale del plugin, aggiungi il seguente codice:

// 在网站页脚输出自定义信息
function my_first_plugin_footer_text() {
    echo '<p style="text-align: center;">Grazie per aver utilizzato il plugin che è stato sviluppato con il mio primo progetto!</p>';
}
add_action( 'wp_footer', 'my_first_plugin_footer_text' );

Qui, abbiamo definito una funzione.my_first_plugin_footer_text()Poi utilizzalo.add_action()La funzione lo monta suwp_footerIl codice è stato inserito all’interno di un “hook” specifico. Quando WordPress esegue la parte del sito relativa al piede di pagina (footer), viene automaticamente chiamata la nostra funzione, che genera il contenuto HTML predefinito. Questo esempio dimostra il funzionamento di base del meccanismo dei “hook” e dei “callback” in WordPress.

Si consiglia di leggere Guida introduttiva allo sviluppo di plugin per WordPress: crea il tuo primo plugin funzionale da zero.

Approfondimento: Ganci e filtri

La filosofia fondamentale dello sviluppo di plugin per WordPress si basa sugli “hook” (ganci). Esistono due tipi di hook: gli Action Hooks e i Filter Hooks. Comprendere il funzionamento di questi hook è fondamentale per passare da un livello iniziale di conoscenza a uno di competenza avanzata nello sviluppo di plugin.

Comprendere i “action hooks” (ganci di azione)

Gli “action hooks” permettono di inserire il proprio codice in punti specifici del processo di esecuzione di WordPress. Come mostrato nell’esempio precedente…wp_footerViene attivato durante la generazione del codice HTML del piede di pagina. Un altro esempio comune di “action hook” (gancio di azione) è…initViene eseguito dopo il completamento del caricamento iniziale di WordPress e prima dell’elaborazione delle richieste; è spesso utilizzato per inizializzare le impostazioni degli plugin o per registrare tipi di articoli personalizzati.

// 在初始化时执行一些操作
function my_plugin_init_action() {
    // 例如,在这里可以注册一个自定义文章类型
    // if ( ! post_type_exists( 'book' ) ) { ... }
}
add_action( 'init', '_plugin_init_action' );

Imparare a utilizzare i “filter hooks”.

A differenza degli hook di azione, gli hook di filtro vengono utilizzati per modificare i dati. Ricevono un valore, permettono di modificarlo e successivamente restituiscono il valore elaborato. Un esempio tipico è…the_contentIl filtro ti consente di modificare il contenuto principale 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%
// 在文章内容末尾自动添加一段提示文字
function my_plugin_content_filter( $content ) {
    if ( is_single() ) {
        $extra_text = '<div class="my-plugin-note">Il contenuto di questo articolo è stato generato tramite il filtro del mio plugin.</div>';
        $content .= $extra_text;
    }
    return $content;
}
add_filter( 'the_content', 'my_plugin_content_filter' );

In questo esempio, la funzione…my_plugin_content_filter()Ricevere il file originale…$contentVerifica se si tratta di una pagina contenente un singolo articolo; in tal caso, aggiungi un segmento di codice HTML dopo il contenuto dell’articolo stesso. Infine, restituisce il contenuto modificato. WordPress utilizzerà questo valore restituito al posto del contenuto originale per l’output.

Creare plugin configurabili

Un plugin professionale di solito richiede l’offerta di un’interfaccia di gestione che permetta agli utenti di effettuare configurazioni. Ciò implica la creazione di pagine di impostazioni nel backend di WordPress, l’elaborazione dei dati provenienti dai moduli e il loro salvataggio in modo sicuro.

Creare un menu di gestione e pagine correlate.

Usareadd_menu_page()add_options_page()Le funzioni possono aggiungere un elemento menu e una pagina di configurazione per il tuo plugin in background. Questo avviene solitamente…admin_menuCompletato all’interno degli action hooks.

Si consiglia di leggere Guida introduttiva allo sviluppo di plugin per WordPress: dalla creazione di funzionalità personalizzate all'acquisizione della perfezione in questo campo.

// 添加插件管理菜单
function my_plugin_add_admin_menu() {
    add_options_page(
        '我的插件设置',          // 页面标题
        '我的插件',             // 菜单标题
        'manage_options',       // 所需权限
        'my-plugin-settings',   // 菜单slug
        'my_plugin_settings_page' // 显示页面的回调函数
    );
}
add_action( 'admin_menu', 'my_plugin_add_admin_menu' );

// 设置页面的HTML内容
function my_plugin_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>I miei setting per il plugin</h1>
        <form method="post" action="/it/options.php/" data-trp-original-action="options.php">
            <?php
            settings_fields( 'my_plugin_settings_group' );
            do_settings_sections( 'my-plugin-settings' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="it"/></form>
    </div>
    &lt;?php
}

Impostazioni di registrazione, campi e gestione della sicurezza

Successivamente, sarà necessario utilizzare l’API delle impostazioni di WordPress per registrare le impostazioni, i campi e gestire il salvataggio dei dati. Questo garantisce la sicurezza delle operazioni di verifica dei dati, controllo degli accessi e serializzazione dello storage.

// 初始化插件设置
function my_plugin_settings_init() {
    // 注册一个新的设置项到“my_plugin_settings_group”
    register_setting( 'my_plugin_settings_group', 'my_plugin_options' );

// 在设置页面添加一个区域
    add_settings_section(
        'my_plugin_section_id',
        '基础配置',
        null,
        'my-plugin-settings'
    );

// 向该区域添加一个字段
    add_settings_field(
        'my_plugin_text_field',
        '提示文本',
        'my_plugin_text_field_render',
        'my-plugin-settings',
        'my_plugin_section_id'
    );
}
add_action( 'admin_init', 'my_plugin_settings_init' );

// 渲染文本框字段
function my_plugin_text_field_render() {
    $options = get_option( 'my_plugin_options' );
    ?&gt;
    <input type='text' name='my_plugin_options[text_field]' value='<?php echo esc_attr( $options['text_field'] ?? '' ); ?>'>
    <p class="description">Il testo inserito qui verrà visualizzato sulla pagina principale del sito web.</p>
    &lt;?php
}

In questo modo, i dati inseriti dall’utente nell’interfaccia front-end vengono sottoposti a processi di sicurezza integrati in WordPress (come la decodifica non CEScape e la verifica dei dati), per poi essere salvati sotto forma di array.wp_optionsNel tabellone… Il codice del tuo plugin può essere utilizzato tramite…get_option( ‘my_plugin_options’ )Acquistare questi valori in modo sicuro.

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.

Seguire le migliori pratiche e prepararsi alla pubblicazione.

Per sviluppare un plugin di alta qualità, facile da mantenere e sicuro, è necessario seguire una serie di best practice.

Organizzazione del codice e sicurezza

Non credere mai alle informazioni fornite dagli utenti. Per quanto riguarda tutto ciò che viene inserito…$_GET$_POSTI dati ottenuti, o quelli letti dal database e pronti per l’output, vanno elaborati utilizzando le funzioni fornite da WordPress per l’escapamento o la validazione dei valori.esc_html()esc_attr()sanitize_text_field()wp_kses()Ecc. Utilizzare.wp_enqueue_script()wp_enqueue_style()Per caricare correttamente gli script e i stili, nonché per gestire le dipendenze e il controllo delle versioni, è consigliabile utilizzare i principi della programmazione orientata agli oggetti (OOP). Per i plugin più complessi, organizzare il codice attraverso l’OOP permette di incapsulare le funzionalità all’interno di classi, migliorando così la modularità e la riutilizzabilità del codice stesso.

Internazionalizzazione e localizzazione

Per permettere al tuo plugin di essere utilizzato da utenti in tutto il mondo, l’internazionalizzazione (i18n) è essenziale. Ciò significa che devi…__()_e()Le funzioni `etc.` incapsulano tutte le stringhe destinate all’utente. Sono definite nelle note iniziali del plugin.Text Domain(Ad esempio,my-first-pluginDeve essere in linea con i campi di testo utilizzati in questo contesto.

// 错误示例
echo “Settings Saved”;

// 正确示例
echo esc_html__( 'Settings Saved', 'my-first-plugin' );

Successivamente, puoi utilizzare strumenti come Poedit per estrarre queste stringhe e generarne un file di output..potI file di template permettono ai traduttori di creare contenuti in diverse lingue (ad esempio…).zh_CN.poI file di traduzione per “)” devono essere forniti per poter effettuare la traduzione corretta. Una volta ricevuti, li tradurrò in italiano..moI file di compilazione sono posizionati nella directory dei plugin./languages/All’interno della cartella, WordPress caricherà automaticamente le traduzioni corrispondenti in base alla lingua del sito.

Pronto per la pubblicazione nel catalogo ufficiale.

Se pianifici di inviare il plugin al catalogo ufficiale di plugin di WordPress.org, devi assicurarti che il codice sia conforme alle specifiche richieste. Questo include la creazione di un documento dettagliato…readme.txtI file utilizzano un formato specifico per descrivere i plugin, le immagini dello schermo, i passaggi di installazione, le domande frequenti (FAQ) e i log degli aggiornamenti; il software è distribuito sotto la licenza GPL. I codici sorgenti vengono inviati al repository ufficiale di Subversion (SVN). Prima della pubblicazione, è necessario testare accuratamente la compatibilità del proprio plugin con diverse versioni di WordPress, PHP, temi popolari e altri plugin.

Riassumendo

Lo sviluppo di plugin per WordPress è un processo graduale che parte dall’incapsulamento di funzionalità semplici fino alla creazione di applicazioni complesse. Inizia con un file PHP contenente le giuste annotazioni di intestazione; l’essenza dello sviluppo consiste nell’utilizzare abilmente gli “action hooks” e i “filter hooks” per interagire con il nucleo di WordPress. L’interfaccia di amministrazione backend può essere creata tramite l’API Settings, rendendo il plugin più user-friendly. Seguire le migliori pratiche di sicurezza, implementare la localizzazione (internationalizzazione) e organizzare correttamente il codice rappresenta la base per lo sviluppo di plugin di livello professionale. Che tu abbia bisogno di soddisfare le esigenze di un progetto personale o desideri contribuire alla comunità open source, padroneggiare questo processo di sviluppo ti aprirà le porte a potenzialità di personalizzazione estese.

FAQ - Domande frequenti

Quali sono le conoscenze preliminari necessarie per sviluppare plugin?

È necessario disporre di conoscenze di base di programmazione in PHP, comprendere i linguaggi HTML e CSS, nonché avere una certa dimestichezza con le operazioni e i concetti fondamentali di WordPress (come articoli, pagine e widget). Essere familiari con i concetti di base dei database MySQL può essere utile, ma non è obbligatorio, poiché WordPress fornisce funzioni pratiche per la gestione dei database.WP_QuerywpdbClasse).

Qual è la differenza tra i file functions.php dei plugin e dei temi?

Metti il codice all’interno del tema.functions.phpIl file contiene un metodo per aggiungere rapidamente delle funzionalità, ma queste funzionalità sono legate al tema specifico utilizzato. Quando si cambia tema, tali funzionalità vengono perse. I plugin, invece, sono moduli indipendenti dal tema: le loro funzionalità rimangono attive indipendentemente dal tema scelto, purché siano stati attivati. Pertanto, per funzionalità che si prevede di utilizzare a lungo termine o che devono essere riutilizzate su più siti, svilupparle come plugin rappresenta una scelta migliore.

Come devo eseguire il debug del codice del mio plugin?

WordPress offre diversi strumenti per il debug. Innanzitutto, è possibile utilizzare…wp-config.phpIl file è stato aperto.WP_DEBUG“Modello, continui…”define( 'WP_DEBUG', true );Questo farà apparire tutti gli errori, gli avvisi e le notifiche PHP sullo schermo. Un modo più sicuro è impostare entrambe le configurazioni contemporaneamente.WP_DEBUG_LOGtrueRegistra gli errori in…/wp-content/debug.logNel file… Inoltre, utilizzare…error_log()Utilizzare funzioni o plugin di debug professionali, come Query Monitor, permette di tracciare le variabili e le query al database in modo più efficiente.

Come posso garantire che il mio plugin sia compatibile con versioni più recenti di PHP?

Per assicurare che il plugin funzioni correttamente anche nelle future versioni di PHP, è consigliabile evitare l’uso di funzioni e sintassi obsolete o rimosse. Nell’ambiente di sviluppo locale, utilizzare un ambiente compatibile con le versioni future di PHP (ad esempio PHP 8.x) per i test. Seguire attentamente gli aggiornamenti ufficiali di WordPress e PHP, e indicare nell’archivio di aggiornamenti del plugin l’intervallo di versioni di PHP compatibili: questo aiuterà gli utenti a scegliere correttamente l’ambiente di sviluppo più adatto.