Sviluppo di plugin per WordPress: dall’approccio base alla maestria: impara passo dopo passo a creare il tuo primo plugin personalizzato

Leggere in 3 minuti.
2026-03-13
2026-06-04
2,424
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?

Il motivo per cui WordPress è diventato il sistema di gestione dei contenuti più popolare al mondo è senza dubbio la sua notevole estensibilità. Il cuore di questa estensibilità sono i plugin. Sviluppando plugin personalizzati, è possibile aggiungere al sito qualsiasi funzionalità si desideri, senza dover modificare il codice sorgente di WordPress stesso. Questo non solo garantisce la sicurezza degli aggiornamenti del core del sistema, ma rende anche le funzionalità aggiunte modulari, facili da gestire e da trasferire su altri siti.

Imparare a sviluppare plugin ti permetterà di passare da un semplice “utilizzatore” di WordPress a un vero “creatore”. Che si tratti di personalizzare funzionalità uniche per i clienti, di risolvere esigenze aziendali specifiche, o di trasformare le tue idee in prodotti da vendere sul mercato, padroneggiare questa competenza ti apre infinite possibilità. Ancora più importante è comprendere il flusso di lavoro legato allo sviluppo di plugin: questo ti consentirà di risolvere eventuali problemi e di modificare gli strumenti esistenti in modo più efficace quando li utilizzi.

Un plugin standard per WordPress è strutturalmente una cartella che contiene il file PHP principale. Questo file principale dichiara la propria esistenza al sistema WordPress attraverso specifiche informazioni presenti all’inizio del codice (note commentate). Tutta la logica funzionale del plugin – sia che si tratti di aggiungere un nuovo widget, creare un tipo di articolo personalizzato o elaborare i dati provenienti dai moduli – viene eseguita utilizzando i vari “hook” (punti di interazione) forniti da WordPress.

Si consiglia di leggere Sviluppo di plugin per WordPress: dall’approccio base alla maestria: impara passo dopo passo a creare le tue funzionalità personalizzate

Crea il tuo primo progetto di plugin.

Prima di iniziare lo sviluppo, è necessario disporre di un ambiente di sviluppo locale. Consigliamo l’uso di strumenti come XAMPP, MAMP, Local by Flywheel o Docker per configurare un server locale che includa PHP, MySQL e Apache/Nginx. Sviluppare il codice direttamente sull’installazione di WordPress sul proprio computer permette di evitare possibili interferenze con il sito web online.

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

La struttura di base dei file per la creazione di un plugin

Il plugin più semplice può contenere soltanto un file. Nella directory di installazione di WordPress, entra nel percorso appropriato… wp-content/plugins Cestino: crea un nuovo cestino, ad esempio… my-first-pluginPoi, all’interno di questa cartella, crea un file PHP principale; il nome del file di solito coincide con il nome della cartella stessa. my-first-plugin.php

Scrivere la parte di metadati in cima al plugin

Nel file principale del plugin, il blocco di commenti posizionato all’inizio del file è di fondamentale importanza. Esso fornisce a WordPress il nome del plugin, la descrizione, la versione, l’autore e altre informazioni utili. Un esempio di intestazione standard è il seguente:

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个用于学习 WordPress 插件开发的自定义插件。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * License URI:       https://www.gnu.org/licenses/gpl-2.0.html
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

Dopo aver salvato il file, accedi al pannello di amministrazione di WordPress e vai alla pagina “Aggiornamenti”. Dovresti vedere il tuo primo plugin elencato nell’area dedicata ai plugin disponibili; potrai quindi attivarlo. A questo punto, è stato creato un plugin “vuoto”, ma funzionante. Al momento non dispone di alcuna funzionalità, ma la sua struttura è corretta.

Esplorare i meccanismi fondamentali di WordPress: gli hook e i filtri

Il cuore dello sviluppo di plugin per WordPress risiede nella comprensione e nell’utilizzo del suo sistema di “hook” (ganci). Esistono due tipi di hook: gli action hook e i filter hook. Questi rappresentano i meccanismi che WordPress offre per permettere di inserire codice personalizzato o modificare i dati in momenti specifici del funzionamento del sito.

Si consiglia di leggere Guida introduttiva allo sviluppo di plugin per WordPress: crea la tua prima estensione funzionale da zero.

Comprendere il funzionamento dei “action hooks”

Gli “action hooks” permettono di eseguire le proprie funzioni in momenti specifici del flusso di esecuzione di WordPress. Ad esempio, quando la pagina è completamente caricata o quando un articolo viene pubblicato. add_action() Una funzione può essere utilizzata per “montare” (ovvero collegare) una tua funzione personalizzata a un determinato “hook” (punto di interazione del sistema). La sintassi di base è la seguente:add_action( ‘hook_name’, ‘your_function_name’ );

Realizziamo una funzionalità che permetta di visualizzare un messaggio personalizzato nella parte inferiore delle pagine del front-end del sito web. Per farlo, utilizzeremo… wp_footer Questo “action hook”.

function my_custom_footer_message() {
    echo '<p style="text-align: center; color: #666;">Grazie per aver visitato il nostro sito! Questo messaggio nella parte inferiore della pagina è stato aggiunto tramite un plugin personalizzato.</p>';
}
add_action( 'wp_footer’, 'my_custom_footer_message’ );

Aggiungi il codice al file principale del tuo plugin. my-first-plugin.php Salva i cambiamenti e aggiorna la pagina principale del sito web; vedrai questa riga di testo nella parte inferiore della 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%

Utilizzare i filtri per modificare il contenuto predefinito.

Gli “hook dei filtri” (filter hooks) vengono utilizzati per modificare i dati generati da WordPress durante il suo processo di elaborazione. A differenza degli “hook delle azioni” (action hooks), le funzioni dei filtri devono restituire un valore. add_filter() Esistono funzioni per montare (o applicare) filtri. Ad esempio, per modificare il contenuto predefinito del titolo di un articolo:

function modify_post_title( $title ) {
    if ( is_single() ) {
        return '【精选】’ . $title;
    }
    return $title;
}
add_filter( ‘the_title’, 'modify_post_title’ );

Questa funzione aggiunge il prefisso “【Selezione】” davanti ai titoli delle pagine dedicate agli articoli singoli, mentre i titoli delle altre pagine (come la pagina iniziale o le pagine di elenco) rimangono invariati. Utilizzando combinazioni di azioni e filtri, è possibile controllare quasi ogni aspetto di WordPress.

Creare una pagina di amministrazione del backend pratica.

Per permettere agli utenti dei plugin di configurare le opzioni, di solito è necessario creare una pagina di gestione da back-end per loro. Questo richiede l’utilizzo dell’API del menu di gestione di WordPress.

Si consiglia di leggere Sviluppo di plugin per WordPress: Da principianti a esperti: Una guida completa per creare moduli con funzionalità altamente personalizzabili

Aggiungere un nuovo elemento al menu di gestione.

Usare add_menu_page()add_options_page() Funzioni come queste permettono di aggiungere una nuova pagina al menu laterale del backend di WordPress. Prendiamo ad esempio l’operazione di aggiunta di una pagina all’interno del sottomenu “Impostazioni”.

Innanzitutto, creiamo una funzione per generare il contenuto HTML della pagina di gestione.

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_plugin_settings_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( ‘my_plugin_settings’ );
            do_settings_sections( ‘my_plugin_settings’ );
            submit_button( ‘保存设置’ );
            ?>
        <input type="hidden" name="trp-form-language" value="it"/></form>
    </div>
    &lt;?php
}

Impostazioni di registrazione, blocchi e campi

WordPress offre register_setting(), add_settings_section()add_settings_field() Questo insieme di API permette di gestire in modo standardizzato le impostazioni. Si occupa automaticamente della verifica della sicurezza (Nonce) nonché del salvataggio e della lettura delle opzioni.

Successivamente, abbiamo bisogno di una funzione per inizializzare queste impostazioni. Questa funzione dovrebbe essere collegata (o “montata”) al sistema in modo che possa essere eseguita automaticamente all’avvio del programma. admin_init Sul gancio.

function my_plugin_settings_init() {
    // 注册一个新的设置选项组
    register_setting( ‘my_plugin_settings’, ‘my_plugin_options’ );

// 在页面中添加一个新的区块
    add_settings_section(
        ‘my_plugin_section_1’,
        ‘基础设置’,
        null, // 回调函数,用于输出区块描述,可为空
        ‘my_plugin_settings’
    );

// 在区块内添加一个字段
    add_settings_field(
        ‘my_plugin_field_text’,
        ‘欢迎语’,
        ‘my_plugin_field_text_cb’,
        ‘my_plugin_settings’,
        ‘my_plugin_section_1’,
        [
            ‘label_for’ =&gt; ‘my_plugin_field_text’,
            ‘class’ =&gt; ‘my_plugin_row’,
        ]
    );
}
add_action( ‘admin_init’, ‘my_plugin_settings_init’ );

// 字段的回调函数,用于输出字段的 HTML
function my_plugin_field_text_cb( $args ) {
    $options = get_option( ‘my_plugin_options’ );
    ?&gt;
    <input type="text" id="<?php echo esc_attr( $args[‘label_for’] ); ?>"
           name="my_plugin_options[<?php echo esc_attr( $args[‘label_for’] ); ?>]"
           value="<?php echo esc_attr( $options[ $args[‘label_for’] ] ?? ‘’ ); ?>">
    <p class="“description”">Questo testo verrà visualizzato sulla pagina principale del sito web.</p>
    &lt;?php
}

Aggiungi i link alle pagine al menu.

Infine, utilizza… add_options_page() Aggiungi la pagina che abbiamo creato al menu “Impostazioni”.

function my_plugin_add_settings_page() {
    add_options_page(
        ‘我的插件设置’, // 页面标题
        ‘我的插件’, // 菜单标题
        ‘manage_options’, // 所需能力
        ‘my-plugin-settings’, // 菜单别名
        ‘my_plugin_settings_page_html’ // 渲染页面的回调函数
    );
}
add_action( ‘admin_menu’, ‘my_plugin_add_settings_page’ );

Ora, dopo aver attivato il plugin, potrai trovare l’opzione “I miei plugin” nel menu “Impostazioni” del backend di WordPress. Cliccandoci, verrà visualizzata una pagina di configurazione che contiene un campo di testo: potrai inserire il messaggio di benvenuto e salvarlo. In seguito, potrai utilizzare questo messaggio per personalizzare l’aspetto del sito. get_option( ‘my_plugin_options’ ) Acquisisci questo valore dal front-end e utilizzalo.

Implementazione delle funzionalità grafiche del plugin e considerazioni sulla sicurezza

Quando si implementano funzionalità front-end all’interno di un plugin, la sicurezza è il fattore più importante da considerare. Non fidarsi mai dei dati forniti dagli utenti: è necessario verificarli, pulirli e escaparli correttamente.

Supponiamo che vogliamo utilizzare il “messaggio di benvenuto” salvato nelle impostazioni di backend e visualizzarlo in cima alla pagina principale del sito web. Prima di tutto, dobbiamo recuperare questa informazione dal database e poi renderla disponibile in modo sicuro per l’utente.

function display_frontend_greeting() {
    // 1. 获取数据
    $options = get_option( ‘my_plugin_options’ );
    $greeting = $options[‘my_plugin_field_text’] ?? ‘’;

// 2. 如果内容为空,则不输出任何东西
    if ( empty( $greeting ) ) {
        return;
    }

// 3. 在输出前进行清理和转义
    $safe_greeting = esc_html( $greeting );

// 4. 输出到前端(这里假设只在首页显示)
    if ( is_front_page() ) {
        echo ‘<div class="“my-plugin-greeting”"><p>’. $safe_greeting . ‘</p></div>’;
    }
}
add_action( ‘wp_body_open’, ‘display_frontend_greeting’ );

Qui abbiamo utilizzato… esc_html() Esistono funzioni per escapare i caratteri HTML, al fine di prevenire gli attacchi di tipo Cross-Site Scripting (XSS). Abbiamo inoltre verificato se i dati sono vuoti e abbiamo utilizzato tag condizionali per gestire tali situazioni. is_front_page() Per controllare la posizione dell’output, è necessario montare la funzione in modo appropriato. wp_body_open I hook assicurano che il contenuto venga visualizzato immediatamente dopo l'inizio del tag della pagina.

Inoltre, nell’ambito dello sviluppo di plugin, l’internazionalizzazione rappresenta una pratica fondamentale. Questo può essere ottenuto utilizzando… __()_e() Utilizzando funzioni di traduzione appropriate e impostando correttamente il “Text Domain” del plugin, è possibile far tradurre il proprio plugin in qualsiasi lingua. Nelle informazioni meta presenti all’inizio del plugin, abbiamo già definito i parametri necessari per la traduzione. Text Domain: my-first-pluginNel codice, si dovrebbe utilizzare in questo modo:

echo esc_html__( ‘Hello, World!’, ‘my-first-plugin’ );

Riassumendo

Attraverso le pratiche descritte in questo articolo, abbiamo completato un processo di sviluppo di un plugin per WordPress che, sebbene semplice, risulta efficace. Abbiamo iniziato creando la struttura di base dei file del plugin e le informazioni relative al suo funzionamento (meta-information), per poi approfondirci nei meccanismi fondamentali di WordPress: il sistema di “hook” (ganci). Abbiamo utilizzato azioni (actions) e filtri (filters) per controllare il flusso di esecuzione del codice e modificare i dati. Successivamente, abbiamo creato una pagina di amministrazione nel backend che includeva campi personalizzabili, permettendo agli utenti di configurare le opzioni del plugin; infine, queste opzioni sono state visualizzate in modo sicuro nella parte front-end del sito web.

Questo processo copre diversi aspetti chiave dello sviluppo di plugin: l’organizzazione dei file, l’utilizzo degli “hook” (meccanismi di interazione tra plugin e sistema principale di WordPress), la creazione di interfacce di back-end, la gestione delle impostazioni e la sicurezza dei dati visualizzati in frontend. Ricorda che un plugin di qualità non deve solo essere funzionale, ma anche sicuro, efficiente e facile da mantenere. In seguito, puoi provare ad aggiungere ulteriori funzionalità al tuo plugin, come tipi di articoli personalizzati, codici utilizzabili in modo semplice (shortcodes), strumenti utili (tools) o endpoint REST API, per approfondire ulteriormente la tua conoscenza dello sviluppo di plugin per WordPress.

FAQ - Domande frequenti

Un plugin può contenere soltanto un file PHP?

Sì, il plugin più semplice per WordPress può essere composto da un unico file PHP, a condizione che questo file contenga le giuste annotazioni per identificarlo come plugin. Tuttavia, per i plugin più complessi, si consiglia di organizzare il codice in file separati: le funzionalità relative all’interfaccia utente, quelle relative al backend e le funzioni comuni vanno suddivise in file distinti. Questo permette di migliorare la leggibilità e la manutenibilità del codice.

Come si debugga un plugin sviluppato da sé?

Si consiglia di attivare il modalità di debug di WordPress. Per farlo, si deve accedere al directory radice del sito web e… wp-config.php Nel documento, verrà indicato che... WP_DEBUG La costante è impostata su trueIn questo modo, gli errori, gli avvisi e le notifiche di PHP verranno tutti visualizzati. Inoltre, è possibile utilizzarli in combinazione tra loro. error_log() La funzione scrive le informazioni di debug nel log di errore del server, oppure utilizza la console degli strumenti di sviluppo del browser per il debug del JavaScript.

Quando si sviluppano plugin, quali sono le norme di sicurezza che devono essere rispettate?

Il principio fondamentale è: non fidarsi mai di alcun input fornito dall’utente. Per quanto riguarda tutto ciò che viene inviato dall’utente… $_GET$_POST$_COOKIE I dati ottenuti vanno verificati e puliti. Quando si visualizzano i dati in HTML, è necessario utilizzare un approccio appropriato per garantire l’accuratezza e la qualità delle informazioni mostrate. esc_html()esc_attr()esc_url() Utilizzare funzioni di escape per i caratteri speciali. Quando si costruiscono query per il database, è essenziale applicare tali funzioni correttamente. $wpdb->prepare() Esistono diversi metodi per prevenire gli attacchi di iniezione SQL. Inoltre, è necessario verificare i permessi dell’utente attuale (ad esempio…). current_user_can()Anche questo è un passaggio essenziale.

Come posso inviare il mio plugin al catalogo ufficiale di plugin di WordPress?

Innanzitutto, assicurati che il tuo plugin segua rigorosamente gli standard di codifica di WordPress e sia rilasciato sotto la licenza GPL. Devi visitare il sito ufficiale di WordPress (WordPress.org), creare un account e successivamente inviare il pacchetto compresso del tuo plugin sulla pagina dedicata alle sottomissioni di plugin. Il team ufficiale effettuerà una revisione manuale per verificare la qualità del codice, la sicurezza, i documenti e la conformità alle normative. Una volta superata la revisione, il tuo plugin verrà inserito nel catalogo ufficiale di WordPress, riceverà il supporto per gli aggiornamenti automatici e potrà essere cercato e installato dagli utenti in tutto il mondo.