Guida introduttiva allo sviluppo di plugin per WordPress: crea il tuo primo plugin personalizzato da zero.

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

Perché sviluppare il proprio plug-in WordPress?

Nell’ecosistema di WordPress, i plugin rappresentano il cuore delle funzionalità estensive per un sito web. Sebbene esistano migliaia di plugin disponibili sul mercato, lo sviluppo di plugin personalizzati offre numerosi vantaggi. Innanzitutto, permette di implementare funzionalità esattamente in linea con le proprie esigenze, evitando il codice eccessivamente complesso o caratteristiche non necessarie tipici dei plugin generici. In secondo luogo, i plugin sviluppati in casa possono essere integrati in modo profondo con il tema del sito o con altri codici personalizzati, garantendo una maggiore compatibilità e prestazioni. Inoltre, separare la logica aziendale dal codice del tema rappresenta una buona pratica di sviluppo per WordPress: in questo modo, anche in caso di cambio di tema, le funzionalità essenziali del sito continueranno a funzionare correttamente, migliorando così la manutenibilità del sito stesso.

Per i sviluppatori, imparare a creare plugin rappresenta un ottimo modo per comprendere a fondo l’architettura di WordPress. Avrai modo di entrare in contatto con i cosiddetti “action hooks”.add_action“Filter Hooks”add_filterShort codesadd_shortcodeConcetti fondamentali come questi. Padroneggiare queste conoscenze non solo ti permetterà di creare plugin, ma ti aiuterà anche a personalizzare temi e plugin esistenti in modo più efficiente.

Configurazione dell’ambiente e preparativi prima dello sviluppo

Prima di iniziare a scrivere la prima riga di codice, è fondamentale creare un ambiente di sviluppo appropriato. Questo non solo migliora l’efficienza, ma anche aiuta a evitare errori.

Si consiglia di leggere Introduzione allo sviluppo di plugin per WordPress, dal principiante all'esperto: condivisione di esperienze pratiche e tecniche fondamentali.

Configurare un ambiente di sviluppo locale

Si consiglia di utilizzare software per server locali, come Local by Flywheel, XAMPP o MAMP, che permettono di configurare rapidamente un ambiente di esecuzione per WordPress sul proprio computer, includendo Apache, MySQL e PHP. Rispetto ai server online, lo sviluppo in locale offre la possibilità di effettuare test e debug in tempi brevi, senza il rischio di influenzare il sito web pubblico.

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

Dopo aver installato WordPress localmente, è necessario…wp-content/pluginsAll’interno del catalogo, crea una cartella dedicata al tuo nuovo plugin. Si consiglia di utilizzare un nome inglese breve, in minuscolo e privo di spazi, ad esempio:my-first-plugin

Conoscere la struttura di base di un plugin

Il plugin più semplice per WordPress può essere composto da un unico file principale. Questo file deve contenere delle annotazioni specifiche nella parte iniziale (header), che vengono utilizzate da WordPress per riconoscere le informazioni relative al plugin. È inoltre necessario adottare misure di sicurezza, come il controllo degli accessi diretti, solitamente effettuato attraverso verifiche appropriate.ABSPATHLe costanti vengono definite al fine di essere utilizzate nel codice.

Ecco un esempio di file principale di un plugin minimizzato; il file può essere chiamato…my-first-plugin.phpE posizionatelo nella cartella appena creata:

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://yourwebsite.com/my-first-plugin
 * Description:       这是一个用于学习的入门级WordPress插件。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 */

// 防止直接访问此文件
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

Metti la cartella che contiene questo file nella posizione desiderata.wp-content/pluginsDopo aver creato il catalogo, potrai trovarlo sulla pagina “Plugin” nell’interfaccia amministrativa di WordPress e attivarlo.

Si consiglia di leggere La guida definitiva allo sviluppo di plugin per WordPress: dalla creazione di funzionalità personalizzate da zero fino alla loro implementazione.

Creare la prima funzionalità principale.

Ora, aggiungiamo alcune funzionalità pratiche al plugin. Creeremo una funzionalità semplice: aggiungerà automaticamente un testo personalizzato alla fine del contenuto di un articolo.

Modificare il contenuto di un articolo utilizzando filtri.

WordPress offre un gran numero di “filter hooks” che ti permettono di modificare i dati prima che vengano salvati nel database o visualizzati nel browser. Per modificare il contenuto di un articolo, possiamo utilizzare…the_contentFiltro.

Nel file del tuo plugin principale, dopo aver attivato gli hook, aggiungi la seguente funzione e le relative chiamate agli hook:

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_first_plugin_add_text_to_content( $content ) {
    // 确保只在主循环的单篇文章页面执行
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $additional_text = '<p><em>Grazie per aver letto questo articolo! L’articolo è stato realizzato con il supporto di “Il mio primo plugin”.</em></p>';
        $content .= $additional_text;
    }
    return $content;
}
// 将函数挂载到‘the_content’过滤器上
add_filter( 'the_content', 'my_first_plugin_add_text_to_content' );

Questa funzione esegue innanzitutto una serie di verifiche per assicurarsi che il testo aggiuntivo appaia soltanto sulle pagine degli articoli singoli, senza influenzare la pagina principale, la pagina degli archivi o altre pagine del sito. Successivamente, aggiunge un paragrafo HTML personalizzato al contenuto originale.$contentDopo aver modificato il valore della variabile, viene restituito il contenuto modificato.

Creare una semplice pagina di impostazioni di gestione.

Per permettere agli utenti di personalizzare il testo da aggiungere, dobbiamo creare un’opzione di configurazione per loro. Questo implica l’aggiunta di un elemento menu e di una pagina di configurazione nell’interfaccia di amministrazione di WordPress.

Prima di tutto, usaadd_actionIl “gancio” (hook) aggiunge una pagina di menu sottostante al menu degli amministratori.

Si consiglia di leggere Imparare a sviluppare plugin per WordPress: creare il tuo primo plugin personalizzato da zero.

// 创建管理菜单
function my_first_plugin_add_admin_menu() {
    add_options_page(
        '我的第一个插件设置', // 页面标题
        '我的插件设置',       // 菜单标题
        'manage_options',     // 所需权限
        'my-first-plugin',    // 菜单slug
        'my_first_plugin_settings_page' // 显示页面的回调函数
    );
}
add_action( 'admin_menu', 'my_first_plugin_add_admin_menu' );

Successivamente, definisci la funzione di callback per la pagina delle impostazioni di visualizzazione.my_first_plugin_settings_pageE gestisci anche la logica di salvataggio del modulo:

// 设置页面的HTML内容
function my_first_plugin_settings_page() {
    ?&gt;
    <div class="wrap">
        <h2>La configurazione del mio primo plug-in.</h2>
        <form method="post" action="/it/options.php/" data-trp-original-action="options.php">
            <?php
            settings_fields( 'my_first_plugin_settings_group' );
            do_settings_sections( 'my-first-plugin' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="it"/></form>
    </div>
    &lt;?php
}

// 注册设置、区域和字段
function my_first_plugin_settings_init() {
    register_setting( &#039;my_first_plugin_settings_group&#039;, &#039;my_first_plugin_custom_text&#039; );

add_settings_section(
        &#039;my_first_plugin_section&#039;,
        &#039;自定义文本设置&#039;,
        null,
        &#039;my-first-plugin&#039;
    );

add_settings_field(
        &#039;my_first_plugin_text_field&#039;,
        &#039;要在文末添加的文本&#039;,
        &#039;my_first_plugin_text_field_render&#039;,
        &#039;my-first-plugin&#039;,
        &#039;my_first_plugin_section&#039;
    );
}
add_action( &#039;admin_init&#039;, &#039;my_first_plugin_settings_init&#039; );

// 渲染文本输入字段
function my_first_plugin_text_field_render() {
    $option = get_option( &#039;my_first_plugin_custom_text&#039;, &#039;感谢您阅读这篇文章!本文由“我的第一个插件”提供支持。&#039; );
    echo &#039;<textarea name="my_first_plugin_custom_text" rows="3" cols="50">' . esc_textarea( $option ) . '</textarea>';
}

Infine, modifica la funzione che aggiungeva il testo in precedenza in modo che operi basandosi sulle opzioni selezionate dall’utente.my_first_plugin_custom_textLeggere il contenuto da:

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.
function my_first_plugin_add_text_to_content( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $custom_text = get_option( 'my_first_plugin_custom_text', '' );
        if ( ! empty( $custom_text ) ) {
            $additional_text = '<p><em>'. wp_kses_post($custom_text)'.'</em></p>';
            $content .= $additional_text;
        }
    }
    return $content;
}

Preparazione per la sicurezza, l’ottimizzazione e la distribuzione degli plugin.

Un plugin qualificato non deve solo funzionare correttamente, ma deve anche essere sicuro, efficiente e facile da mantenere.

Convalida dei dati, escape e sicurezza

La sicurezza rappresenta l’elemento fondamentale nello sviluppo di plugin. Non fidarsi mai dei dati forniti dagli utenti o dei dati estratti direttamente dal database. Quando i dati vengono visualizzati sulle pagine, è necessario eseguire operazioni di “escape” (ovvero modifiche per evitare che vengano interpretati in modo errato dal browser). Nel codice precedente, abbiamo utilizzato…esc_textarea()Nella pagina di gestione, è necessario escapare i dati visualizzati e utilizzare i relativi metodi di formattazione.wp_kses_post()Nella pagina dell’articolo, è necessario filtrare il codice HTML in modo che vengano permessi soltanto i tag relativi al contenuto dei post sicuri. Per l’elaborazione dei moduli (form), è consigliabile utilizzare le funzionalità offerte da WordPress per il controllo non obbligatorio dei dati inseriti e per la verifica degli accessi (autorizzazioni).sanitize_text_field()Utilizzare funzioni come queste per pulire i dati.

Organizzazione del codice e ottimizzazione delle prestazioni

Con l’aumentare delle funzionalità dei plugin, scrivere tutto il codice in un unico file principale diventa difficile da gestire. La pratica consigliata è suddividere il codice in base alle funzionalità, inserendolo in file separati. Ad esempio, è possibile creare…includes/admin/Il directory contiene tutto il codice relativo al pannello di amministrazione.includes/public/Il directory contiene il codice delle funzionalità front-end.includes/class-*.phpPer conservare le definizioni delle classi.

Per quanto riguarda le prestazioni, è consigliabile utilizzare gli “hook” con cautela, assicurandosi che le funzioni al loro interno vengano eseguite soltanto quando necessario (ad esempio, tramite condizioni logiche). Per i valori delle opzioni che devono essere letti dal database, soprattutto se vengono utilizzati più volte nel frontend, è possibile memorizzarli in variabili globali o in cache, al fine di evitare richieste ripetute al database.

Stai per pubblicare il tuo plugin.

Se intendi pubblicare il plugin nel catalogo ufficiale di WordPress o renderlo disponibile per un numero più ampio di utenti, è necessario perfezionare alcuni aspetti. Innanzitutto, assicurati che le informazioni presenti nelle note iniziali del plugin siano complete e accurate. In secondo luogo, scrivi una descrizione chiara e dettagliata del plugin stesso.readme.txtI file devono seguire i requisiti di formattazione ufficiali di WordPress, descrivendo le funzionalità del plugin, i passaggi per l’installazione, le domande più comuni, ecc. Infine, è necessario eseguire test approfonditi, inclusi test di compatibilità con diverse versioni di PHP, diverse versioni di WordPress, nonché con diversi temi e altri plugin popolari.

Riassumendo

Attraverso questa guida, abbiamo completato l’intero processo di creazione di un plugin WordPress funzionale e dotato di una interfaccia di gestione, partendo da zero. Abbiamo imparato la struttura di base di un plugin, come interagire con il nucleo di WordPress utilizzando azioni e hook dei filtri, come creare pagine di gestione, e abbiamo anche compreso l’importanza della sicurezza e dell’organizzazione dei plugin. Il cuore dello sviluppo di plugin consiste nel comprendere l’architettura basata sugli eventi di WordPress e nell’apprendere a inserire il proprio codice personalizzato nel momento giusto. Partendo da qui, puoi proseguire esplorando argomenti più avanzati come i tipi di articoli personalizzati, i metadati, gli endpoint REST API e la creazione di tabelle nel database, per costruire gradualmente plugin professionali e potenti.

FAQ - Domande frequenti

Quali sono le basi per sviluppare i plugin di WordPress?

È necessario padroneggiare la grammatica di base del linguaggio di programmazione PHP, i concetti della programmazione orientata agli oggetti, nonché avere una conoscenza di base di HTML, CSS e JavaScript. Essere familiari con le operazioni di base di WordPress e i suoi concetti fondamentali (articoli, pagine, categorie) sarà di grande aiuto. La cosa più importante è comprendere il meccanismo dei “hook” (Actions e Filters) di WordPress, che rappresenta il principale modo per che i plugin interagiscano con il sistema.

Qual è la differenza tra le funzionalità di un plugin e di un tema (theme)? E come si dovrebbe scegliere tra i due?

I temi controllano principalmente l’aspetto e la disposizione del sito web, mentre i plugin servono ad aggiungere funzionalità. Un buon principio da seguire è: se una funzionalità è strettamente legata alla presentazione visiva del sito, è più appropriato integrarla direttamente nel tema; se invece si tratta di una funzionalità indipendente (come moduli di contatto, ottimizzazione SEO, e-commerce), è meglio creare un plugin dedicato. Implementare le funzionalità tramite plugin garantisce che queste non vengano perse in caso di cambio di tema, ed è considerata la migliore pratica di sviluppo per WordPress.

Posso creare più file PHP all’interno di un plugin?

Certo che sì; inoltre, per i plugin più complessi, questa è proprio la pratica consigliata. È possibile suddividere i diversi moduli funzionali in file separati, per poi gestirli tramite il file principale del plugin.require_onceinclude_onceUtilizzare frasi specifiche per introdurre i vari elementi del codice è fondamentale per mantenere una struttura dei file chiara e organizzata. Una buona struttura dei file facilita l’organizzazione del codice stesso, nonché la collaborazione tra i membri del team.

Come devo debuggare il plugin che ho sviluppato?

Un metodo di debug comune utilizzato nello sviluppo con WordPress è l’attivazione delle funzionalità di debug integrate nel sistema.WP_DEBUGPuoi farlo sul sito web.wp-config.phpNel documento, verrà indicato che...define( 'WP_DEBUG', true );Questo farà apparire gli errori, gli avvisi e le notifiche di PHP sullo schermo. Un modo più sicuro è impostare entrambe le opzioni contemporaneamente.WP_DEBUG_LOGtrueRegistra gli errori in…wp-content/debug.logIl file è disponibile all’interno del documento. Inoltre, l’utilizzo degli strumenti di sviluppo del browser e di plugin di debug come Query Monitor può notevolmente aumentare l’efficienza nel lavoro di sviluppo.

Il mio plugin deve essere compatibile con le più vecchie versioni di WordPress.

Dipende dai tuoi utenti target. Di solito, si consiglia di garantire la compatibilità con almeno le prime due versioni delle versioni principali attualmente in uso. Puoi consultare i dati statistici ufficiali di WordPress per conoscere la distribuzione delle versioni. Nel codice, puoi utilizzare istruzioni condizionali per gestire questa compatibilità in modo appropriato.function_exists()Per verificare se una funzione o una classe è disponibile, al fine di garantire la compatibilità con versioni precedenti, si può utilizzare un meccanismo specifico all’interno degli plugin.readme.txtNel file, è necessario specificare chiaramente la versione di WordPress per la quale i test sono stati eseguiti e risultati positivi.