Guida completa allo sviluppo di plugin per WordPress: dall’introduzione all’applicazione pratica

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

Perché imparare lo sviluppo di plugin per WordPress?

WordPress, come il sistema di gestione dei contenuti più popolare al mondo, deve la sua notevole estensibilità principalmente al meccanismo dei plugin. Imparare a sviluppare plugin significa non essere più limitati dalle funzionalità disponibili, ma essere in grado di creare soluzioni personalizzate in base alle esigenze del progetto: sia per offrire funzionalità uniche ai clienti, sia per trasformare idee creative in prodotti concreti da condividere con la comunità. Acquisire questa competenza può migliorare significativamente l’efficienza del tuo lavoro e la tua competitività sul mercato.

Un plugin standard per WordPress è un file PHP indipendente o una directory che contiene più file; interagisce con il nucleo di WordPress attraverso una serie di interfacce predefinite. Il processo di sviluppo si concentra principalmente sulla comprensione dei meccanismi interni di WordPress.HooksIl sistema segue gli standard di codifica e le pratiche di sicurezza previste.

Crea il tuo primo plugin.

Prima di iniziare a scrivere il codice, hai bisogno di un ambiente di sviluppo locale. Si consiglia l’uso di XAMPP, MAMP o Local by Flywheel. Una volta che l’ambiente è pronto, puoi iniziare a lavorare.wp-content/pluginsHai creato il tuo primo plugin all’interno del directory.

Si consiglia di leggere Imparare a sviluppare plugin per WordPress da zero: guida completa e esercizi pratici

Creare il file del plugin principale

Ogni plugin deve disporre di un file PHP principale, che deve contenere all’inizio delle note informative standard relative al plugin stesso. Questo file rappresenta l’ingresso principale per l’utilizzo del plugin e il suo nome corrisponde solitamente al nome della directory in cui è contenuto. Ad esempio, per creare un plugin chiamato…my-first-pluginIl contenuto del directory, e al suo interno viene creato un file con lo stesso nome.my-first-plugin.phpDocumenti.

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).

Le note all’inizio di un file sono di fondamentale importanza: WordPress le utilizza per riconoscere le informazioni di base di un plugin.

<?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
 */

Dopo aver salvato il file, fai login al pannello di amministrazione di WordPress, vai alla pagina “Plugin” e vedrai che il nuovo plugin è apparso nell’elenco dei plugin disponibili; potrai quindi attivarlo. Al momento, non dispone di alcuna funzionalità.

Aggiungere la prima funzionalità

Ora, aggiungiamo una funzionalità semplice a questo plugin: aggiungere automaticamente un testo personalizzato alla fine del contenuto degli articoli. Per farlo, sarà necessario utilizzare le funzionalità disponibili in WordPress.the_contentFilter hook.

Nel file principale del plugin, aggiungi il seguente codice sotto le informazioni relative alle note (commenti).

Si consiglia di leggere Guida completa allo sviluppo di plugin per WordPress: costruisci il tuo primo plugin funzionale da zero

// 在文章内容后添加自定义文本
function myfp_add_footer_text($content) {
    // 确保只在主循环的单篇文章中显示
    if (is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query()) {
        $custom_text = '<p><em>Grazie per la lettura! Questo articolo è stato realizzato con il supporto di “Il mio primo plugin”.</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
// 将函数挂载到‘the_content’过滤器
add_filter('the_content', 'myfp_add_footer_text');

Questo codice definisce una funzione.myfp_add_footer_textRiceve il contenuto dell’articolo.$contentCome parametro, all’interno della funzione vengono eseguite verifiche condizionali per garantire che l’operazione avvenga soltanto sulla pagina di un articolo specifico e all’interno del ciclo principale della query principale. Successivamente, viene inserito un testo HTML personalizzato. Infine, viene utilizzato…add_filter()La funzione permette di collegare (o “montare”) questa funzione personalizzata a WordPress.the_contentIl filtro è attivo. Dopo aver attivato l’estensione, visualizzando qualsiasi articolo, noterai il testo aggiunto in fondo al contenuto.

Approfondimento: Ganci e API

Il cuore dello sviluppo di plugin per WordPress risiede nella comprensione e nell’uso efficace del suo sistema di “Hook” (Ganci) nonché della sua ricca API. Questi elementi costituiscono il ponte per una comunicazione sicura e standardizzata tra i plugin e il core del sistema stesso.

Comprendere i meccanismi di interazione tra azioni (actions) e i “filter hooks”

Gli “hook” si dividono in due tipi principali: “Action” (Azioni) e “Filter” (Filtri). Gli hook di tipo “Action” ti permettono di “eseguire” codice personalizzato in momenti specifici. Ad esempio,wp_footerL’azione viene attivata prima dei tag in fondo alla pagina; puoi farlo tramite…add_action('wp_footer', 'your_function')Per inserire il codice di tracciamento o l’HTML personalizzato, segui questi passaggi:

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%

Gli “hook” dei filtri ti permettono di “modificare” i dati: ricevono i dati, li elaborano attraverso la tua funzione e poi li restituiscono. L’esempio precedente relativo all’aggiunta di testo nel piede di pagina ne è un tipico utilizzo. Un altro esempio comune è…excerpt_lengthFiltro utilizzato per modificare la lunghezza dei riassunti degli articoli.

// 修改摘要长度为20个单词
function myfp_custom_excerpt_length($length) {
    return 20;
}
add_filter('excerpt_length', 'myfp_custom_excerpt_length');

Utilizzare l’API del database di WordPress

I plugin hanno spesso bisogno di memorizzare e recuperare dati. WordPress offre gli strumenti necessari per farlo.wpdbPer interagire in modo sicuro con il database, si consiglia caldamente l’utilizzo dell’API “Options” per i dati semplici costituiti da coppie chiave-valore.

Ad esempio, per permettere agli utenti di personalizzare il testo del piede di pagina che abbiamo aggiunto in precedenza, possiamo creare un’opzione.

Si consiglia di leggere Guida completa allo sviluppo di plugin per WordPress: dall'introduzione alla creazione di estensioni di livello professionale.

// 1. 创建可配置的页脚文本
function myfp_add_footer_text_v2($content) {
    if (is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query()) {
        // 从数据库获取选项值,如果不存在则使用默认值
        $footer_text = get_option('myfp_footer_text', '感谢阅读!本文由“我的第一个插件”提供支持。');
        $custom_text = '<p><em>'`. esc_html($footer_text)`.'</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
add_filter('the_content', 'myfp_add_footer_text_v2');

Ora, il contenuto testuale può essere visualizzato tramite…get_option()La funzione legge i dati dal database. Successivamente, abbiamo bisogno di una pagina di gestione che permetta agli utenti di modificare questo valore.

Creare una pagina di gestione dei plugin

Per rendere il plugin più professionale ed easy da utilizzare, è necessario aggiungere una pagina di configurazione. Questo viene solitamente realizzato tramite l’API del menu di amministrazione di WordPress.

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.

Aggiungere il menu di gestione e le pagine sottostanti.

Possiamo aggiungere un menu principale indipendente al plugin, oppure farlo apparire come un sottome menu all’interno dei menu “Impostazioni” o “Strumenti”. In questo caso, lo aggiungeremo al menu “Impostazioni”.

Prima di tutto, usaadd_action()Montare una funzione su…admin_menuAggiungi un elemento del menu all’interno di questa funzione.

// 添加管理菜单
function myfp_add_admin_menu() {
    add_options_page(
        '我的第一个插件设置', // 页面标题
        '我的插件设置',       // 菜单标题
        'manage_options',     // 所需权限
        'my-first-plugin',    // 菜单slug
        'myfp_options_page_html' // 用于渲染页面的回调函数
    );
}
add_action('admin_menu', 'myfp_add_admin_menu');

add_options_page()La funzione creerà una sottopagina all’interno del menu “Impostazioni”. Quando l’utente clicca su questo menu, WordPress chiamerà la funzione di callback che abbiamo specificato.myfp_options_page_htmlEsegui l’output del contenuto della pagina.

Creare un modulo per la pagina delle impostazioni.

Successivamente, definiremo una funzione di callback per rendere un semplice modulo di configurazione. Questo modulo verrà inviato a…options.phpQuesto è il modo standard con cui WordPress gestisce le impostazioni.

// 渲染设置页面
function myfp_options_page_html() {
    // 检查用户权限
    if (!current_user_can('manage_options')) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
        <form action="/it/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 输出必要的安全字段
            settings_fields('myfp_settings');
            // 输出设置章节和字段
            do_settings_sections('my-first-plugin');
            // 提交按钮
            submit_button('保存设置');
            ?>
        <input type="hidden" name="trp-form-language" value="it"/></form>
    </div>
    &lt;?php
}

Impostazioni di registrazione, sezioni e campi

Non basta avere solo un modulo: dobbiamo anche utilizzarlo.register_setting(), add_settings_section()add_settings_field()Funzioni come queste servono per informare WordPress di quali opzioni di configurazione sono disponibili.

// 初始化插件设置
function myfp_settings_init() {
    // 注册一个设置项‘myfp_settings’,它包含一个字段‘myfp_footer_text’
    register_setting('myfp_settings', 'myfp_footer_text');

// 在页面‘my-first-plugin’上添加一个设置章节
    add_settings_section(
        'myfp_section',
        '页脚文本设置',
        null, // 章节描述回调函数,这里不需要
        'my-first-plugin'
    );

// 在上述章节中添加一个字段
    add_settings_field(
        'myfp_field_footer_text',
        '自定义页脚文本',
        'myfp_field_footer_text_html', // 渲染字段HTML的回调函数
        'my-first-plugin',
        'myfp_section',
        ['label_for' =&gt; 'myfp_footer_text']
    );
}
add_action('admin_init', 'myfp_settings_init');

// 渲染文本输入字段
function myfp_field_footer_text_html() {
    // 获取数据库中保存的值
    $value = get_option('myfp_footer_text');
    ?&gt;
    <input type="text" id="myfp_footer_text" name="myfp_footer_text" value="<?php echo esc_attr($value); ?>" class="regular-text">
    <p class="description">Questo testo verrà visualizzato alla fine di ogni articolo.</p>
    &lt;?php
}

Ora, aggiorna il backend di WordPress e vedrai l’opzione “Impostazioni dei miei plugin” nel menu “Impostazioni”. Entrando in questa pagina, potrai modificare e salvare il testo del piede di pagina personalizzato; di conseguenza, il contenuto degli articoli visualizzati sul frontend verrà aggiornato automaticamente.

Riassumendo

Questo guida ti accompagna lungo il percorso fondamentale dello sviluppo di plugin per WordPress: dalla creazione di un file di plugin di base che contiene le informazioni di intestazione standard, all’aggiunta di funzionalità a WordPress utilizzando azioni e hook, allo stoccaggio dei dati tramite l’API delle opzioni, fino alla creazione di un’interfaccia di amministrazione completa. L’intero processo riflette la filosofia di sviluppo modulare e basata su hook di WordPress. Una volta acquisite queste nozioni di base, potrai esplorare argomenti più avanzati come i tipi di articoli personalizzati, i codici brevi (shortcodes), l’integrazione con l’API REST, il trattamento degli eventi AJAX e l’internazionalizzazione dei plugin. Ricorda che una buona struttura del codice, un trattamento sicuro dei dati e un’interfaccia utente chiara sono fondamentali per creare plugin di qualità.

FAQ - Domande frequenti

Quali sono le conoscenze preliminari necessarie per sviluppare plugin?

È necessario possedere una conoscenza di base della lingua di programmazione PHP, inclusi concetti come variabili, funzioni, condizioni di controllo e cicli. Inoltre, è importante avere una conoscenza di base di HTML e CSS per gestire l’output e lo stile grafico del lato client. Essere familiari con le operazioni di base di MySQL può essere utile per comprendere il salvataggio dei dati, anche se l’API di WordPress ha già incapsulato la maggior parte delle interazioni con il database.

Come debuggare un plugin che si sta sviluppando?

Il metodo più efficace è attivare il modalità di debug di WordPress.wp-config.phpNel documento, verrà indicato che...WP_DEBUGUna costante è definita come un valore immutabile che non può essere modificato durante l’esecuzione del programma.trueQuesto farà apparire tutti gli errori, gli avvisi e le notifiche di PHP sullo schermo. Inoltre, è possibile utilizzare…error_log()La funzione scrive le informazioni di debug nel log di errore del server, oppure utilizza i pannelli “Console” e “Network” degli strumenti di sviluppo del browser per effettuare il debug del lato client.

Come possono i plugin implementare il supporto per più lingue?

WordPress utilizza i processi di “internazionalizzazione (i18n)” e “localizzazione (l10n)” per supportare più lingue. Nel codice dei plugin, tutte le stringhe di testo che devono essere tradotte devono essere contrassegnate in modo appropriato.__()_e()Si devono incapsulare le funzioni di traduzione appropriate. Successivamente, utilizzare strumenti come Poedit per estrarre queste stringhe dal codice sorgente e generare il contenuto da tradurre..potI file di template vengono utilizzati per creare contenuti in diverse lingue.zh_CN.poInfine, dichiara il tuo dominio di testi all’interno della sezione “Text Domain” presente all’inizio del file principale del plugin, e utilizzalo durante l’inizializzazione.load_plugin_textdomain()Funzione di caricamento delle librerie (function loading).

Come pubblicare un plugin sviluppato nel catalogo ufficiale?

Prima di tutto, devi assicurarti che il tuo plugin segua rigorosamente gli standard di codifica ufficiali di WordPress, la politica sulla privacy e i requisiti di compatibilità con la licenza GPL. Successivamente, richiedi un repository SVN su WordPress.org. Invia il codice del tuo plugin (inclusi i file principali, i file di risorse e i file di traduzione) in questo repository SVN./trunkIndice: Le nuove versioni vengono pubblicate utilizzando i tag SVN. L’indice ufficiale viene sincronizzato automaticamente dal tuo repository SVN e, dopo una revisione manuale, viene visualizzato.