Come imparare a sviluppare plugin per WordPress da zero: guida completa e tutorial pratico

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

Comprendere la struttura di base di un plugin per WordPress

Prima di iniziare lo sviluppo, è essenziale comprendere i concetti fondamentali e il funzionamento dei plugin per WordPress. Un plugin è essenzialmente un insieme di file PHP che permettono di estendere le funzionalità di base di WordPress; di solito include documentazioni, codice esecutivo e file di risorse. Il suo funzionamento dipende interamente dal sistema di “hook” (ganci) fornito da WordPress.

Esplorare la struttura standard dei file dei plugin

Un plugin WordPress standard segue solitamente una struttura di directory ben definita. Il file principale del plugin, ad esempio… my-first-plugin.phpDeve essere posizionato… /wp-content/plugins/ Il file si trova all’interno del directory principale o di uno dei suoi sottodirectory. È di estrema importanza, poiché contiene le informazioni necessarie per identificare il tuo plugin al sistema WordPress.

Un tipico catalogo di plugin può contenere le seguenti parti: il file principale del plugin, nonché le directory destinate all’archiviazione di risorse statiche come JavaScript e CSS. assets/ Cartella utilizzata per i file delle classi PHP. includes/ Indice, per l’interfaccia utente admin/public/ Cartelle, nonché gli strumenti utilizzati per la traduzione dei file. languages/ Indice. Una buona struttura aiuta nell’organizzazione e nella manutenzione del codice, soprattutto quando le funzionalità dei plugin diventano complesse.

Si consiglia di leggere Sviluppo di plugin per WordPress: Da principianti a esperti: Una guida completa per creare funzionalità personalizzate

Conoscere le informazioni essenziali presenti all’inizio dei file dei plugin

Ogni plugin deve iniziare con specifiche informazioni metadati (Header), che vengono incluse all’interno di blocchi di commenti PHP. Questo è fondamentale affinché WordPress possa riconoscere il plugin. Il formato di base è il seguente:

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://www.example.com/my-first-plugin
 * Description: 这是一个简短描述,介绍插件功能的句子。
 * Version:     1.0.0
 * Author:      你的名字
 * Author URI:  https://www.example.com
 * License:     GPL v2 or later
 * Text Domain: my-first-plugin
 * Domain Path: /languages
 */

Tra questi,Plugin Name È obbligatorio fornire queste informazioni; le altre sono opzionali, ma si consiglia di inserirle. Soprattutto… Text DomainDomain PathSono preparazioni per l’internazionalizzazione (supporto a più lingue) dei plugin. WordPress legge queste informazioni e le visualizza sulla pagina di gestione dei plugin, disponibile nell’area di back-end.

Configurare un ambiente di sviluppo locale e creare il primo plugin

Prima di iniziare a codificare, è essenziale disporre di un ambiente di sviluppo locale isolato e facilmente iterabile. Ciò permette di evitare i rischi legati ai test diretti sul sito web online.

Configurare la catena di strumenti per lo sviluppo locale

Si consiglia di utilizzare un ambiente di integrazione basato su server locali, come Local by Flywheel, XAMPP o Laragon. Questi strumenti permettono di installare in un solo passo PHP, MySQL e il server web necessari per WordPress. Inoltre, è necessario disporre di un editor di codice, come Visual Studio Code o PHPStorm, che offre funzionalità di evidenziazione del codice, suggerimenti e debug. Assicurarsi che la versione di PHP utilizzata sia compatibile con il server di destinazione; di solito si consiglia l’uso di PHP 7.4 o versioni più recenti.

Scrivi e attiva un semplice plugin.

Ora, creiamo il primo plugin funzionale. /wp-content/plugins/ Nel directory, crea una nuova cartella e dale il nome di… my-first-pluginAll’interno di quella cartella, creare un file chiamato… my-first-plugin.php Il file…

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

Copia le informazioni relative ai plugin menzionate nella sezione precedente all’inizio di questo file. Successivamente, aggiungeremo una funzionalità semplice: l’aggiunta automatica di un testo personalizzato alla fine del contenuto degli articoli. Per questo, utilizzeremo gli “hook” dei filtri (Filters) di WordPress. Aggiungi il seguente codice sotto le informazioni relative ai plugin:

// 在文章内容后添加自定义文本
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' );

Dopo aver salvato il file, accedi al pannello di amministrazione di WordPress e vai alla pagina “Aggiornamenti”. Dovresti vedere un nuovo plugin chiamato “Il mio primo plugin”. Fai clic su “Attiva”. Ora visita un articolo del sito e noterai che il testo che abbiamo aggiunto è apparso alla fine del contenuto dell’articolo. A questo punto, il tuo primo plugin per WordPress è stato attivato con successo.

Padroneggiare le tecnologie fondamentali dello sviluppo di plugin

La notevole estensibilità di WordPress si basa su alcuni concetti fondamentali: gli “Hook”, l’API per le Opzioni (Options API), i Tipi di Articolo Personalizzabili (Custom Post Types, CPT) e le operazioni sul database. Padroneggiarli rappresenta la base per lo sviluppo avanzato.

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%

Comprendere a fondo i meccanismi dei “action hooks” e dei “filter hooks”

Il sistema dei “hook” rappresenta la base fondamentale per lo sviluppo di plugin per WordPress e si divide in due categorie principali: le “azioni” (Actions) e i “filtri” (Filters). Gli hook di tipo “azione” vengono attivati in momenti specifici dell’esecuzione del programma (ad esempio, al caricamento della parte iniziale della pagina o durante la salvazione di un articolo), permettendoti di eseguire determinate operazioni, come l’aggiunta di menu o l’invio di email. add_action() Una funzione per effettuare il montaggio.

Ad esempio, aggiungere una pagina al menu di gestione amministrativa in background:

function myfp_add_admin_menu() {
    add_menu_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限
        'myfp-settings',  // 菜单slug
        'myfp_settings_page', // 回调函数,用于显示页面内容
        'dashicons-admin-generic', // 图标
        20
    );
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );

Gli “hook” dei filtri ti permettono di “modificare” i dati. Vengono attivati prima che i dati vengano utilizzati (ad esempio, visualizzati nel browser o salvati nel database); in questo modo puoi modificarli e restituire i nuovi valori. Questo è esattamente ciò che abbiamo utilizzato nel nostro primo plugin. the_content Si tratta semplicemente di un “hook” per un filtro.

Si consiglia di leggere Analisi approfondita di WooCommerce: Una guida completa per costruire siti e-commerce ad alte prestazioni da zero

Utilizzare l’API delle opzioni per salvare le impostazioni dei plugin.

I plugin di solito richiedono la salvataggio di alcune impostazioni, come chiavi API, stati di attivazione/disattivazione, ecc. WordPress offre strumenti per gestire questo processo in modo semplice. Options API Per gestire facilmente questo tipo di dati, le funzioni principali includono: add_option(), get_option(), update_option()delete_option()

Crea una semplice pagina di configurazione per utilizzare queste funzioni. Inizialmente, definisci le funzioni di callback relative al menu menzionato sopra. myfp_settings_page Per visualizzare un modulo:

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 myfp_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( 'myfp_settings_group' ); // 输出安全字段
            do_settings_sections( 'myfp-settings' );  // 输出设置部分
            submit_button(); // 输出提交按钮
            ?>
        <input type="hidden" name="trp-form-language" value="it"/></form>
    </div>
    &lt;?php
}

Poi, devi utilizzare… register_setting(), add_settings_section()add_settings_field() Si utilizzano funzioni come `declare` e `initialize` per dichiarare e inizializzare questi campi di configurazione. Questo processo consente di salvare i dati in modo sicuro. wp_options Nella tabella.

Costruire un esempio completo di plug-in pratico

Integreremo le conoscenze apprese in precedenza per creare un plugin un po“ più complesso, ma utile: un plugin per stimare il tempo di lettura di un articolo. Questo plugin mostrerà il tempo previsto di lettura sotto il titolo dell’articolo stesso.

Creare il file principale del plugin e le funzioni di funzionalità.

Crea una nuova cartella per i plugin. post-reading-time E il file principale post-reading-time.phpInserite le informazioni standard relative alla testata del plugin. Successivamente, creeremo le funzioni principali per calcolare il tempo di lettura.

function prt_calculate_reading_time( $post_id ) {
    // 获取文章内容
    $content = get_post_field( 'post_content', $post_id );
    // 清除HTML标签和短代码,只计算文字
    $text = strip_tags( strip_shortcodes( $content ) );
    // 计算字数(中英文混合场景的简单处理)
    $word_count = mb_strlen( $text, 'UTF-8' );
    // 假设平均阅读速度为每分钟300字(可根据需要调整)
    $reading_speed = 300;
    // 计算分钟数,至少1分钟
    $minutes = floor( $word_count / $reading_speed );
    if ( $minutes < 1 ) {
        $minutes = 1;
    }
    // 返回包含时间的字符串
    return sprintf( _n( '约 %d 分钟读完', '约 %d 分钟读完', $minutes, 'post-reading-time' ), $minutes );
}

Visualizzare i dati sul front-end in modo integrato con la gestione avvenuta sul back-end.

Successivamente, dobbiamo decidere come visualizzare questo orario. Un approccio comune è quello di inserirlo nei metadati dell’articolo (sotto il titolo). the_content I filtri o i temi forniscono specifici “hook” (punti di interazione). In questo caso, utilizziamo un “action hook” più appropriato. thesis_hook_before_post(Dipende dall’argomento), oppure in modo più generale, filtrare direttamente il contenuto degli articoli.

Per maggiore flessibilità, abbiamo creato un codice breve (Shortcode) e un piccolo strumento (Widget), nonché un semplice opzione di configurazione per controllare se visualizzarli automaticamente o meno.

Innanzitutto, registrare il codice breve:

function prt_reading_time_shortcode( $atts ) {
    $atts = shortcode_atts( array(
        'id' =&gt; get_the_ID(),
    ), $atts, 'reading_time' );

$time_text = prt_calculate_reading_time( $atts['id'] );
    return '<span class="reading-time">'. $time_text .'</span>'php
add_shortcode('reading_time', 'prt_reading_time_shortcode');

Poi, possiamo aggiungere automaticamente i risultati all’inizio del contenuto dell’articolo (utilizzando dei filtri):

function prt_prepend_to_content( $content ) {
    if ( is_single() && get_option( 'prt_auto_display', '1' ) == '1' ) {
        $time_html = '<div class="post-reading-time">' . prt_calculate_reading_time( get_the_ID() ) . '</div>';
        $content = $time_html . $content;
    }
    return $content;
}
add_filter( 'the_content', 'prt_prepend_to_content' );

Devi anche creare un’opzione di configurazione nel backend. prt_auto_displayPermette agli utenti di scegliere se abilitare la funzione di visualizzazione automatica. A questo punto, un plugin completo e ben strutturato è stato creato.

Riassumendo

Partendo dalla comprensione dell’architettura di base dei plugin e delle informazioni presenti nei file di intestazione, abbiamo gradualmente costruito l’ambiente di sviluppo e creato il primo plugin con una funzionalità semplice. Esplorando in profondità il sistema di “hook” alla base dell’espandibilità di WordPress, abbiamo imparato come intervenire nel flusso di esecuzione e modificare i dati senza modificare il codice sorgente. Utilizzando l’API Options, abbiamo potuto creare impostazioni persistenti per i plugin. Infine, con la realizzazione di un esempio completo di plugin per stimare il tempo di lettura degli articoli, abbiamo messo in pratica le nozioni teoriche, seguendo l’intero processo di sviluppo: dalla scrittura della logica funzionale, alla creazione di codici brevi (shortcodes), fino all’integrazione con l’interfaccia utente. Ricordate: lo sviluppo di plugin di qualità inizia da una pianificazione chiara, dal rispetto degli standard di codifica di WordPress e dalla priorità data alla sicurezza, alle prestazioni e all’esperienza utente.

FAQ - Domande frequenti

Quali sono le conoscenze preliminari necessarie per sviluppare plugin per WordPress?

È necessario disporre di una solida conoscenza della programmazione in PHP, poiché il codice dei plugin è composto principalmente da questo linguaggio. Inoltre, è fondamentale avere una conoscenza di base di HTML, CSS e JavaScript per gestire la visualizzazione e l’interazione dell’interfaccia utente. Essere familiari con i concetti di base di MySQL aiuta a comprendere i metodi di archiviazione e interrogazione dei dati in WordPress. La cosa più importante è abituarsi a leggere il manuale ufficiale di sviluppo di WordPress (Codex) e la referenza per gli sviluppatori (Developer Reference).

Come posso assicurarmi che il plugin che ho sviluppato sia sicuro?

La sicurezza è di fondamentale importanza. Verifica sempre i dati inseriti dagli utenti e sanitalizzali, nonché escape i dati che vengono visualizzati sul sito. Utilizza i valori non-ce (Nonce) forniti da WordPress per prevenire le attacche di tipo Cross-Site Request Forgery (CSRF). Quando costruisci le query per il database, assicurati di seguire le linee guida stabilite da WordPress. $wpdb I metodi forniti dalla classe (ad esempio…) prepare()Vengono utilizzati diversi metodi per prevenire gli attacchi di iniezione SQL. È importante evitare l’uso di funzioni non sicure, come quelle che potrebbero permettere l’inserimento di codice malevolo nel database. eval()Aggiorna regolarmente i tuoi plugin per correggere le vulnerabilità conosciute.

In quale directory dovrebbero essere posizionati i plugin?

I plugin per WordPress devono essere posizionati all’interno del sito web. /wp-content/plugins/ All’interno del directory principale, è possibile posizionare il file PHP principale del plugin direttamente al livello radice; tuttavia, la pratica più consigliata consiste nel creare una cartella sottostante dedicata a ciascun plugin, inserendo all’interno di essa tutti i file correlati (PHP, JS, CSS, immagini, ecc.). Questo permette di mantenere una struttura dei file ordinata e di evitare possibili conflitti con altri plugin.

Come posso aggiungere una pagina di configurazione al mio plugin?

Aggiungere una pagina di configurazione a un plugin di solito richiede diversi passaggi: innanzitutto, è necessario utilizzare… add_action( ‘admin_menu’, ‘your_function’ ) Il “hook” registra un nuovo elemento del menu di gestione o di un sottomenù. Successivamente, nella funzione di callback viene visualizzato il codice HTML del form presente sulla pagina. Infine, viene utilizzato… register_setting()add_settings_section()add_settings_field() Utilizza le funzioni dell’API Settings per dichiarare e associare i tuoi campi di configurazione; queste funzioni gestiranno automaticamente i controlli sui diritti di accesso, le verifiche non basate su certificati CE (Certified Electronics) e la salvataggio delle opzioni selezionate. Infine, utilizza tali funzioni all’interno dei moduli (form) per implementare correttamente le funzionalità richieste. settings_fields()do_settings_sections() La funzione viene utilizzata per visualizzare i campi necessari.

Cosa sono i “hook” (ganci) e perché sono così importanti?

I “hook” (ganci) sono punti specifici del codice sorgente di WordPress che permettono agli plugin e ai temi di “inserirsi” nel flusso di esecuzione del sistema. Esistono due tipi di hook: gli Action Hook e i Filter Hook. Gli Action Hook vengono eseguiti in seguito all’occorrenza di eventi specifici, e vengono utilizzati per aggiungere nuove funzionalità; i Filter Hook, invece, consentono di modificare i dati prima che vengano utilizzati o salvati. Il sistema dei hook rappresenta il cuore dell’espandibilità di WordPress: permette agli sviluppatori di modificare o migliorare il funzionamento del sito senza dover modificare i file sorgente principali, garantendo così la pulizia del codice sorgente stesso e la possibilità di aggiornamenti futuri.