Guida allo sviluppo di plugin per WordPress: Imparare passo dopo passo a creare il proprio plugin da zero.

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

Comprendere le basi dei plugin e la configurazione dell’ambiente di sviluppo

Prima di iniziare a scrivere il codice, è fondamentale comprendere i concetti di base dei plugin per WordPress e preparare un ambiente di sviluppo locale adatto. Un plugin è essenzialmente una directory che contiene una o più file PHP; esso estende o modifica le funzionalità di base di WordPress attraverso il sistema di “hook” fornito dal framework stesso. A differenza dei temi, i plugin si concentrano sull’aggiunta di nuove funzionalità, piuttosto che sul modificare l’aspetto del sito web: anche se si cambia tema, le funzionalità del plugin rimangono generalmente invariate.

Per iniziare lo sviluppo, è necessario prima di tutto disporre di un ambiente WordPress locale. Questo può essere facilmente configurato utilizzando strumenti come Local by Flywheel, MAMP, XAMPP, o direttamente container Docker. Una volta installato WordPress localmente, è necessario accedere al server per iniziare a lavorare sul codice sorgente del sito web.wp-content/pluginsIndice. Questo è il luogo in cui vengono conservati tutti i plugin. Crea una nuova cartella, ad esempio…my-first-pluginAll’interno di questa cartella, devi creare un file PHP principale il cui nome corrisponde solitamente a quello della cartella stessa, ad esempio:my-first-plugin.phpQuesto file principale rappresenta il punto di ingresso per l’plugin e contiene un insieme di commenti speciali (chiamati “header”) che forniscono a WordPress informazioni sull’plugin stesso, come il nome, la descrizione, la versione, l’autore, e altro ancora.

Si consiglia di abilitare questa funzionalità nell’ambiente di sviluppo.WP_DEBUGModalità: Aprire il contenuto presente nella directory radice di WordPress.wp-config.phpFile: Trova o aggiungi la seguente riga:

Si consiglia di leggere Una guida pratica allo sviluppo di plugin per WordPress: costruisci il tuo primo plugin da zero.

define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG_LOG’, true );
define( ‘WP_DEBUG_DISPLAY’, false );

Questo registrerà gli errori e gli avvisi in…wp-content/debug.logQuesti file ti aiuteranno a individuare rapidamente i problemi durante il processo di sviluppo. Inoltre, l’utilizzo di un editor di codice o di un ambiente di sviluppo integrato (IDE) potente, come VS Code o PhpStorm, può migliorare notevolmente l’efficienza dello sviluppo: questi strumenti offrono solitamente un ottimo supporto per la sintassi del PHP e di WordPress, nonché funzionalità di suggerimento utili durante la programmazione.

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

Crea il tuo primo file di plugin.

Seguiremo il processo completo, dalla creazione di un file alla successiva attivazione di un plugin, creando un semplice plugin “Hello World”. Questo plugin visualizzerà un messaggio di benvenuto in cima alla pagina di amministrazione del sito web.

Nel tuo directory di plugin…my-first-pluginNel documento, viene creato il file principale.my-first-plugin.phpLa struttura di base del contenuto del file deve iniziare dalle note presenti nella parte iniziale del plugin.

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://yourwebsite.com/my-first-plugin
 * Description:       这是一个用于学习插件开发的示例插件,它将在后台显示欢迎信息。
 * Version:           1.0.0
 * Author:            开发者姓名
 * Author URI:        https://yourwebsite.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

Questi titoli delle annotazioni sono obbligatori: WordPress li utilizza per riconoscere e visualizzare i tuoi plugin sulla pagina di gestione dei plugin. Tra questi…Text DomainUtilizzato per l’internazionalizzazione (i18n – Internationalization).Domain PathÈ stato specificato il percorso in cui si trovano i file linguistici (se necessario).

Successivamente, aggiungeremo le funzionalità principali. In questo esempio, utilizzeremo…admin_notices“Gancio”: Aggiungi il seguente codice sotto le note nella parte iniziale del file.

Si consiglia di leggere Guida completa allo sviluppo di plugin per WordPress: un corso pratico dall’introduzione all’approfondimento

// 使用 admin_notices 钩子在管理后台输出提示信息
add_action( ‘admin_notices’, ‘my_first_plugin_display_admin_greeting’ );

/**
 * 在管理后台显示欢迎信息的函数
 * @return void
 */
function my_first_plugin_display_admin_greeting() {
    // 检查当前用户是否有权限,确保只在后台显示
    if ( ! current_user_can( ‘manage_options’ ) ) {
        return;
    }
    ?&gt;
    <div class="notice notice-success is-dismissible">
        <p><?php _e( ‘欢迎使用我的第一个插件!插件开发之旅正式开始!’, ‘my-first-plugin’ ); ?></p>
    </div>
    &lt;?php
}

Dopo aver salvato il file, accedi al pannello di amministrazione del tuo sito WordPress e vai alla pagina “Aggiornamenti”. Dovresti vedere un plugin chiamato “Il mio primo plugin” nell’elenco dei plugin disponibili. Fai clic sul pulsante “Attiva”. Una volta attivato, rinfresca qualsiasi pagina di amministrazione (ad esempio, il pannello di controllo) e dovresti vedere un messaggio di successo in verde che riporta il messaggio di benvenuto definito nel nostro codice. Questa è un’implementazione minimale ma funzionante che verifica che il tuo ambiente di sviluppo e la struttura del plugin siano corretti.

Core tecnologie di WordPress: Ganci (Hooks) e Filtri (Filters)

Comprendere e utilizzare correttamente i “hook” (ganci) è fondamentale nello sviluppo di plugin per WordPress. Esistono due tipi di hook: gli “Actions” (azioni) e i “Filters” (filtri). Gli hook di tipo “Action” ti permettono di inserire ed eseguire codice personalizzato in momenti specifici, ad esempio dopo la pubblicazione di un articolo o prima del caricamento della parte iniziale di una pagina. Quelli che abbiamo utilizzato in precedenza…admin_noticesSi tratta semplicemente di un “gancio” (hook) per un’azione specifica. I “ganci” dei filtri, invece, ti permettono di modificare i dati generati o trasmessi durante il processo, ad esempio modificando il titolo di un articolo o i risultati di una query effettuata da un plugin.

Come aggiungere un’azione personalizzata?

L’azione è stata eseguita con successo.add_action()Aggiunta di una funzione. La sintassi è:add_action( ‘hook_name’, ‘your_function_name’, priority, accepted_args )La priorità (priority) è un numero intero; più il numero è basso, più l’azione verrà eseguita presto. Il valore predefinito è 10. Ad esempio, se vuoi aggiungere del codice HTML personalizzato dopo il contenuto dell’articolo:

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%
add_action( ‘the_content’, ‘my_custom_content_append’ );
function my_custom_content_append( $content ) {
    // 只在单篇文章主循环内生效
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $extra_content = ‘<div class="“my-custom-box”"><p>Questo è contenuto personalizzato aggiunto tramite un plugin.</p></div>’;
        $content .= $extra_content;
    }
    return $content;
}

Attenzione: sebbene…the_contentÈ un filtro (che deve restituire il risultato modificato).$contentWordPress lo utilizza anche come punto di attivazione per determinate azioni. Tuttavia, un approccio più rigoroso prevede l’uso di…add_filter

Come aggiungere un filtro personalizzato?

Il filtro è stato attivato/attuato con successo.add_filter()Aggiunta di una funzione. La sintassi è la seguente:add_action()Un esempio comune è la modifica della lunghezza di un estratto di un articolo.

add_filter( ‘excerpt_length’, ‘my_custom_excerpt_length’, 999 );
function my_custom_excerpt_length( $length ) {
    // 将默认的55个词改为20个词
    return 20;
}

È possibile far sì che il proprio plugin possa essere esteso anche da altri sviluppatori o temi, creando dei propri “hook” (meccanismi di interazione).do_action()Per definire un “action hook”, utilizzate…apply_filters()Definire un “filter hook” è fondamentale per creare plugin modulari ed estensibili.

Si consiglia di leggere Guida completa allo sviluppo di plugin per WordPress: dall’approccio base all’avanzato

Progressione delle funzionalità dei plugin e migliori pratiche di utilizzo

Man mano che le funzionalità di un plugin diventano più complesse, un’organizzazione del codice efficace, la sicurezza, la manutenibilità e le prestazioni diventano elementi di fondamentale importanza. Una pratica comune è l’utilizzo della programmazione orientata agli oggetti (OOP) per strutturare il codice, incapsulando funzionalità e dati correlati all’interno di una classe principale.

Utilizzare la programmazione orientata agli oggetti per incapsulare il codice.

Creare una classe principale permette di gestire in modo più efficace lo stato e i metodi degli plugin, evitando conflitti nei nomi delle funzioni. Ecco un esempio semplice di struttura orientata agli oggetti (OOP – Object-Oriented Programming):

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.
<?php
/**
 * Plugin Name:       进阶示例插件
 */
if ( ! class_exists( ‘My_Advanced_Plugin’ ) ) {
    class My_Advanced_Plugin {
        /**
         * 构造方法,用于初始化钩子
         */
        public function __construct() {
            add_action( ‘init’, array( $this, ‘register_custom_post_type’ ) );
            add_action( ‘admin_menu’, array( $this, ‘add_admin_menu_page’ ) );
            add_filter( ‘the_title’, array( $this, ‘filter_post_title_prefix’ ), 10, 2 );
        }

/**
         * 注册一个自定义文章类型
         */
        public function register_custom_post_type() {
            $args = array(
                ‘public’ => true,
                ‘label’  => ‘我的产品’,
                ‘supports’ => array( ‘title’, ‘editor’, ‘thumbnail’ ),
                ‘has_archive’ => true,
            );
            register_post_type( ‘my_product’, $args );
        }

/**
         * 在文章标题前添加前缀的过滤器
         * @param string $title 原标题
         * @param int    $id    文章ID
         * @return string 修改后的标题
         */
        public function filter_post_title_prefix( $title, $id = null ) {
            if ( ! is_admin() && in_the_loop() ) {
                $title = ‘[精品] ’ . $title;
            }
            return $title;
        }

// ... 其他方法
    }
    // 实例化插件类
    new My_Advanced_Plugin();
}

Questa struttura organizza le funzionalità correlate in un unico insieme, rendendo il codice più chiaro e facile da gestire.

Garantire la sicurezza e le prestazioni dei plugin

La sicurezza è la priorità assoluta nello sviluppo di plugin: non fidarsi mai degli input forniti dagli utenti. Per quanto riguarda tutti i dati provenienti dagli utenti…$_GET$_POST$_REQUESTI dati ottenuti devono essere verificati (Validation), puliti (Sanitization) ed elaborati per l’escapamento dei caratteri speciali (Escaping). WordPress fornisce una serie di funzioni di aiuto per queste operazioni:
* 验证:check_ajax_referer()wp_verify_nonce()
* 清理:sanitize_text_field()sanitize_email()absint()
* 转义:esc_html()esc_url()wp_kses_post()

Prima di visualizzare qualsiasi dato in HTML, attributi o URL, assicurati di utilizzare le funzioni di escape appropriate. Per quanto riguarda le prestazioni, utilizza gli “hook” in modo intelligente per evitare di eseguire query che richiedono molte risorse ad ogni caricamento della pagina. Prendi in considerazione l’utilizzo dell’API “Transients” di WordPress per memorizzare, per un periodo di tempo, i risultati di query non essenziali e ripetibili.

Realizzare la pagina di configurazione dell’estensione

La maggior parte dei plugin richiede una pagina di configurazione per permettere all’utente di impostare le varie opzioni del programma. Questo processo avviene solitamente tramite…add_options_page()add_menu_page()Funzioni come “wait” e “mount” vanno montate (installate) correttamente sul sistema.admin_menuPer implementare questa funzionalità, è necessario utilizzare gli strumenti forniti da WordPress. Le opzioni da configurare devono essere registrate, salvate e verificate in modo sicuro tramite l’API Settings di WordPress. Questo processo include l’utilizzo delle funzionalità disponibili all’interno di tale API.register_setting()add_settings_section()add_settings_field()Funzioni come queste non solo contribuiscono a garantire la sicurezza (ad esempio, attraverso la verifica dei valori “nonce”), ma forniscono anche uno stile uniforme all’interfaccia di back-end di WordPress.

Riassumendo

Lo sviluppo di plugin per WordPress rappresenta un processo che trasforma le idee in funzionalità concrete, iniziando con la comprensione della struttura di base dei plugin e della configurazione dell’ambiente locale. Creando il plugin più semplice possibile (“Hello World”), abbiamo sperimentato l’intero ciclo di sviluppo, dalla creazione dei file alla attivazione delle funzionalità desiderate. Il cuore dello sviluppo risiede nella comprensione approfondita e nell’utilizzo flessibile del potente sistema di “hook” di WordPress: azioni (actions) e filtri (filters), che fungono da ponte per l’interazione con il nucleo di WordPress e le altre sue componenti. Con l’aumentare delle funzionalità del plugin, l’adozione della programmazione orientata agli oggetti, il rispetto delle norme di codifica sicura (verifica dei dati, pulizia dei dati, escape delle stringhe) e l’utilizzo dell’API Settings per la creazione delle pagine di configurazione diventano passaggi essenziali per garantire che il plugin sia stabile, sicuro, facile da mantenere e estensibile. Seguendo queste linee guida e le migliori pratiche di sviluppo, sarai in grado di creare plugin di alta qualità, che vanno da semplici strumenti a applicazioni complesse.

FAQ - Domande frequenti

Quali conoscenze preliminari sono necessarie per sviluppare un plugin per WordPress con il codice “###”?
È necessario disporre di conoscenze di base del linguaggio di programmazione PHP, poiché i plugin sono principalmente scritti in PHP. Inoltre, una conoscenza di base di HTML, CSS e JavaScript sarà utile per creare plugin con interazioni da parte dell’utente (interfaccia grafica front-end). Il più importante è essere familiari con i concetti fondamentali di WordPress, come articoli, pagine, categorie, ruoli degli utenti e, soprattutto, il sistema di “hook” (meccanismi di integrazione tra moduli).

Come si debugga un plugin per WordPress che si sta sviluppando?

Si consiglia vivamente di abilitare questa funzionalità nell’ambiente di sviluppo.WP_DEBUGI modi e le impostazioni correlate sono stati spiegati nella sezione relativa alla configurazione dell’ambiente di esecuzione. Questi setting consentono di registrare gli errori, gli avvisi e le notifiche di PHP in un file di log. Inoltre, è possibile utilizzare…error_log()Funzioni o funzioni ausiliarie come…var_dump()Cooperarewp_die()Ecco i valori delle variabili da verificare. Le schede “Console” e “Network” degli strumenti di sviluppo del browser sono essenziali per il debug dei codici JavaScript e delle richieste AJAX.

Come posso garantire che il mio plugin sia compatibile con diverse versioni di WordPress?

Nel codice dei plugin, dovresti verificare se alcune funzioni o classi esistono nella versione attuale di WordPress prima di utilizzarle. Per farlo, puoi ricorrere a strumenti specifici o metodi di verifica disponibili nel framework di WordPress.function_exists()is_admin()Per i criteri di valutazione, come indicato nelle istruzioni dell’plugin, è possibile fare riferimento alle note presenti all’interno dell’intestazione del plugin stesso.Requires at least:Utilizza i campi per specificare la versione minima di WordPress richiesta. È una buona abitudine testare regolarmente la compatibilità del tuo plugin con le ultime versioni del core di WordPress.

Come posso internazionalizzare il mio plugin per farlo supportare più lingue?

Devi utilizzare le funzioni di traduzione di WordPress per incapsulare tutte le stringhe di testo da tradurre. Ad esempio, puoi usare:__( ‘文本’, ‘your-plugin-text-domain’ )Per ottenere il testo tradotto, utilizzare_e( ‘文本’, ‘your-plugin-text-domain’ )Per ottenere un feedback diretto, è necessario impostare correttamente le configurazioni all’interno delle note presenti nella parte iniziale del plugin.Text DomainDomain PathPoi, utilizzare uno strumento come Poedit per creare….potFile di template: i traduttori possono utilizzarli per creare i contenuti desiderati..po.moFile di lingua.

Dopo il completamento dello sviluppo, come si può inviare il plugin al catalogo ufficiale dei plugin?

Innanzitutto, devi registrare un account sul sito ufficiale di WordPress e inviare il tuo plugin per la revisione. Il tuo codice deve essere conforme agli standard e alle linee guida di codifica ufficiali, inclusi aspetti legati alla sicurezza, all’assenza di codice dannoso e alla compatibilità con la licenza GPL. La struttura del tuo directory di plugin deve includere il file PHP principale, nonché…readme.txtI file (in formato conforme a specifici standard), nonché eventuali screenshot e icone, verranno analizzati. Il processo di revisione potrebbe richiedere del tempo; il team esaminerà il tuo codice per verificare che sia conforme ai requisiti.