Da zero a uno: guida completa allo sviluppo di plugin per WordPress e migliori pratiche.

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

Per sviluppare un plugin per WordPress, è necessario prima di tutto accedere al directory di installazione di WordPress. wp-content/plugins All’interno della cartella, crea una sottocartella dedicata. Il nome di questa sottocartella dovrebbe essere correlato alle funzionalità principali del tuo plugin o al suo nome; inoltre, è consigliabile utilizzare solo lettere minuscole e trattini, ad esempio: my-first-plugin

Successivamente, dovrai creare il file principale del plugin all’interno di questa cartella. Questo file di solito prende il nome del plugin stesso, ad esempio… my-first-plugin.phpQuesto file rappresenta l’ingresso al plugin; in cima ad esso deve essere presente una nota di intestazione del plugin conforme agli standard di WordPress. Questo blocco di note fornisce al sistema WordPress le informazioni di base sul plugin e rappresenta un elemento fondamentale per il suo riconoscimento e l’attivazione.

Un esempio tipico di commento nella parte iniziale di un plugin è il seguente:

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

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个用于演示的简单 WordPress 插件。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://example.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

Dopo aver creato e compilato questo file, potrai visualizzare il tuo plugin nella pagina “Plugin” del pannello di amministrazione di WordPress e attivarlo. Questo segna l’inizio ufficiale del tuo percorso di sviluppo di plugin.

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

Comprendere la struttura di base di un plugin

Un plugin WordPress ben strutturato non solo è facile da mantenere, ma è anche più comprensibile per altri sviluppatori. Seguire metodi di organizzazione standard rende il codice più chiaro e professionale.

Organizzazione dei file e dei directory principali

Oltre al file principale del plugin, un plugin completo e funzionale di solito include diversi directory e file. Ad esempio,includes/ Il catalogo viene utilizzato per conservare i file contenenti le classi o le funzioni PHP principali.admin/ Il directory contiene il codice relativo all’interfaccia di gestione amministrativa del backend.public/frontend/ Il directory contiene il codice destinato ai visitatori del sito web.assets/ Il “directory” (cartella) viene utilizzato per conservare risorse statiche come JavaScript, CSS e immagini.

Inoltre, potrebbero essere necessari anche… languages/ Il directory contiene i file di traduzione internazionalizzati (.po/.mo), oltre a… uninstall.php I file utilizzati per gestire i processi di pulizia in caso di rimozione dei plugin sono fondamentali. Una struttura di directory appropriata costituisce la base per la creazione di plugin mantenibili ed estensibili.

Il ciclo di vita dei plugin e gli hook standard

I plugin di WordPress interagiscono con il sistema di base attraverso una serie di “hook” (ganci). Per comprendere il ciclo di vita di un plugin, è fondamentale conoscere l’ordine in cui vengono eseguiti questi hook. Quando WordPress gestisce una richiesta, carica sequenzialmente i file di base del sistema, i temi (theme) e i plugin attivati.

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

Gli sviluppatori di plugin possono sfruttare queste opportunità. register_activation_hook Eseguire un compito una tantum al momento dell’attivazione di un plugin, ad esempio la creazione di tabelle nel database. Allo stesso modo…register_deactivation_hook Viene utilizzato per gestire le operazioni da eseguire quando un plugin viene disattivato (si noti che questo non equivale alla sua eliminazione). register_uninstall_hook Oppure un elemento indipendente. uninstall.php I file vengono utilizzati per eliminare i dati quando il plugin viene rimosso da WordPress.

Nel corso del funzionamento quotidiano, i due tipi di “hook” (meccanismi di interazione) più utilizzati sono le “Action” (Azioni) e i “Filter” (Filtri). Le “Action” ti permettono di eseguire determinate operazioni in momenti specifici, ad esempio… initPer eseguire una funzione, è necessario inserire del codice; i filtri, invece, consentono di modificare i dati passati ad altre funzioni. the_content)。

Implementare le funzionalità principali e l’interazione con i sistemi di sicurezza.

Lo scopo principale dello sviluppo di plugin è quello di aggiungere nuove funzionalità a WordPress. Che si tratti di aggiungere un codice abbreviato, di creare un piccolo strumento utile o di gestire i dati dei moduli, è necessario rispettare le norme di sicurezza e di interazione di WordPress.

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%

Creare un codice breve per visualizzare il contenuto.

I codici brevi (shortcodes) sono strumenti molto potenti che permettono agli utenti di inserire contenuto dinamico all’interno di articoli o pagine utilizzando semplici tag. Puoi utilizzarli per… add_shortcode Esiste una funzione per registrare il proprio codice breve.

Ad esempio, il codice seguente registra un oggetto chiamato… greet Il codice breve per… accetta un argomento. name “Ciao utente! Questo oggetto possiede le seguenti proprietà…”

function myplugin_greet_shortcode( $atts ) {
    // 使用 shortcode_atts 函数设置默认值并合并用户属性,确保安全性
    $atts = shortcode_atts( array(
        'name' =&gt; '访客',
    ), $atts, 'greet' );

// 在输出前对用户输入进行转义
    $name = esc_html( $atts['name'] );
    return '<p>Ciao, '.$name.'! Benvenuto sul nostro sito web.</p>'php
add_shortcode('greet', 'myplugin_greet_shortcode');

Gli utenti possono inserire testo nell’editor di articoli. [greet name=“小明”]Il front-end mostrerà quindi il messaggio: “Ciao, Xiao Ming! Benvenuto sul nostro sito web.” Ricorda che tutti i dati ottenuti dall’utente devono essere opportunamente elaborati (ad esempio, con l’applicazione di meccanismi di escape) o verificati prima di essere visualizzati, proprio come fatto nell’esempio sopra. esc_html

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

Aggiungere una pagina delle impostazioni per il plug-in.

Per i plugin che richiedono configurazioni da parte dell’utente, creare una pagina di opzioni nel backend è la pratica standard. È possibile utilizzare l“”API di configurazione” di WordPress per aggiungere pagine e campi in modo sicuro e semplice; tale API gestisce automaticamente le verifiche di sicurezza (come i valori “nonce”) e l’archiviazione dei dati.

Prima di tutto, usa add_options_pageadd_menu_page Aggiungere un elemento di menu e una pagina per le funzioni relative nel pannello di amministrazione. Successivamente, utilizzarle… register_settingadd_settings_sectionadd_settings_field Utilizza funzioni come queste per definire le tue opzioni di configurazione.

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.

Ecco un codice di struttura per creare una pagina di impostazioni semplice:

function myplugin_add_admin_menu() {
    add_options_page(
        '我的插件设置',          // 页面标题
        '我的插件',              // 菜单标题
        'manage_options',        // 所需权限
        'myplugin-settings',     // 菜单 Slug
        'myplugin_settings_page' // 用于渲染页面的回调函数
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );

function myplugin_settings_init() {
    register_setting( 'myplugin_settings_page', 'myplugin_settings' );
    add_settings_section( 'myplugin_section', '基础设置', null, 'myplugin_settings_page' );
    add_settings_field(
        'api_key',
        'API 密钥',
        'myplugin_api_key_field_render', // 渲染输入字段的函数
        'myplugin_settings_page',
        'myplugin_section'
    );
}
add_action( 'admin_init', 'myplugin_settings_init' );

function myplugin_api_key_field_render() {
    $options = get_option( 'myplugin_settings' );
    $value = isset( $options['api_key'] ) ? esc_attr( $options['api_key'] ) : '';
    echo '<input type="text" name="myplugin_settings[api_key]" value="' . $value . '" />';
}

function myplugin_settings_page() {
    ?&gt;
    <form action='/it/options.php/' method='post' data-trp-original-action="options.php">
        <h2>I miei setting per il plugin</h2>
        <?php
        settings_fields( 'myplugin_settings_page' );
        do_settings_sections( 'myplugin_settings_page' );
        submit_button();
        ?>
    <input type="hidden" name="trp-form-language" value="it"/></form>
    &lt;?php
}

L’utilizzo dell’API di configurazione permette di salvare in modo sicuro le opzioni del tuo plugin. wp_options Il contenuto è presente all’interno della tabella, e l’interfaccia di gestione segue lo stile tipico di WordPress.

Seguire le migliori pratiche di sviluppo.

Per creare un plugin che possa funzionare in modo stabile a lungo termine, sia facile da mantenere e che interagisca bene con altri plugin, è necessario seguire alcune best practice fondamentali.

Assicurare la sicurezza del codice

La sicurezza rappresenta un aspetto di fondamentale importanza nello sviluppo di plugin. È essenziale verificare, pulire ed escapare tutti i dati forniti dagli utenti (inclusi quelli provenienti da URL, moduli, cookie e database). Per farlo, è possibile utilizzare le funzioni disponibili in WordPress. esc_htmlesc_urlsanitize_text_field Tratta l’output; utilizzalo. wp_verify_noncecheck_admin_referer Questo passaggio serve a verificare la legittimità della richiesta, al fine di prevenire attacchi di tipo Cross-Site Request Forgery (CSRF).

Quando si eseguono query sul database, è essenziale utilizzare… $wpdb I metodi forniti dalla classe (ad esempio…) prepareQuesto viene utilizzato per prevenire gli attacchi di iniezione SQL. È assolutamente vietato concatenare direttamente i dati forniti dall’utente alle istruzioni SQL.

Implementare l’internazionalizzazione e la localizzazione

Per permettere al tuo plugin di essere utilizzato da utenti di WordPress in tutto il mondo, l’internazionalizzazione (i18n) è essenziale. Ciò significa che devi utilizzare le funzioni di traduzione fornite da WordPress per incapsulare tutte le stringhe destinate agli utenti.

Definisci tutto nelle note in cima al tuo plugin. Text Domain(Ad esempio, my-first-plugin) e Domain PathNel codice, utilizzare per tutte le stringhe che necessitano di essere tradotte… __() Esegui la traduzione. _e() Esegui la traduzione e visualizza il risultato direttamente. _n() Gestire le forme singolari e plurali.

Ad esempio:$text = __(‘Hello World’, ‘my-first-plugin’);Poi, puoi utilizzare strumenti come Poedit per generare il contenuto desiderato. .pot File di template, utilizzati dai traduttori per creare i contenuti da tradurre. .po.mo File: Posizionare i file di traduzione nella directory radice del plugin. /languages Una volta creato il folder, WordPress caricherà automaticamente le traduzioni corrispondenti in base alla lingua del sito.

Ottimizzare il codice e considerare le prestazioni dell’applicazione.

I plugin con prestazioni scarse possono rallentare l’intero sito web. È opportuno evitare di eseguire un gran numero di codici non necessari ad ogni caricamento della pagina. Gli script e i stili che vengono utilizzati soltanto in background dovrebbero essere eseguiti soltanto in base a condizioni specifiche, utilizzando meccanismi di valutazione condizionale (ad esempio, tramite istruzioni logiche o regole predefinite). is_admin()Vengono caricati esclusivamente in background; i risorse front-end vengono invece inviate tramite… wp_enqueue_script()wp_enqueue_style() Nel momento appropriato, all’interno dei hook corretti (ad esempio…). wp_enqueue_scriptsVengono caricati in ordine di attesa all’interno della coda.

Per operazioni che richiedono molto tempo o per chiamate a API esterne, considera l’utilizzo dell’API Transients di WordPress.set_transientget_transientEseguire il caching. Inoltre, assicurarsi che il plugin possa essere disattivato o eliminato in modo corretto. uninstall.php Cancellare i tabelloni del database e le opzioni create da sé stessi richiede un’operazione attenta; inoltre, è necessario fornire all’utente l’opzione di decidere se desidera effettivamente eliminare i dati.

Debugging, testing, and publishing

Prima di consegnare il tuo plugin agli utenti, una attenta fase di debug, test e preparazione è fondamentale per garantire il successo.

Utilizzare gli strumenti di debug di WordPress

Durante la fase di sviluppo, si consiglia vivamente di attivare il modalità di debug di WordPress. wp-config.php I parametri sono impostati nel file. define(‘WP_DEBUG’, true);Questo permetterà di visualizzare tutti gli errori, gli avvisi e le notifiche di PHP, aiutandoti a individuare rapidamente i problemi. È anche possibile abilitare queste funzionalità contemporaneamente. WP_DEBUG_LOG Registra gli errori in un file di log, oppure attiva questa funzionalità. SCRIPT_DEBUG Per facilitare il debug, vengono caricati i file JavaScript e CSS non compressi.

Preparazione delle informazioni per il lancio del plugin

Se pianificate di inviare il plugin al catalogo ufficiale di WordPress.org, dovrete preparare una serie di documenti. Questi includono una descrizione dettagliata del plugin, le informazioni tecniche relative alla sua struttura e al funzionamento, nonché tutti i file necessari per il suo corretto funzionamento. Inoltre, sarà necessario fornire anche un esempio di codice sorgente per dimostrare la qualità del vostro lavoro. readme.txt Il file deve essere nel formato richiesto da WordPress e contenere una descrizione del plugin, istruzioni per l’installazione, risposte alle domande più comuni, i log degli aggiornamenti, ecc. Inoltre, è necessario fornire immagini di alta qualità per i banner e gli iconi, nonché compilare una descrizione del repository SVN del plugin stesso.

A livello di codice, assicurati di aver completato i preparativi per l’internazionalizzazione e controlla attentamente che tutto il codice rispetti gli standard di codifica di WordPress. Puoi utilizzare PHP_CodeSniffer, insieme alle regole di codifica di WordPress, per effettuare tali verifiche in locale.

Eseguire test di compatibilità tra diversi ambienti.

Prima di pubblicare il tuo plugin, è necessario testarlo in diversi ambienti. Questo include diverse versioni di WordPress (soprattutto la versione attuale e la precedente principale), diverse versioni di PHP (ad esempio PHP 7.4, 8.0, 8.1), diverse versioni di database (MySQL/MariaDB), nonché verificare la compatibilità con temi popolari e altri plugin. Assicurati che il tuo plugin non generi errori o avvisi in nessuna fase del suo utilizzo: durante l’attivazione, la disattivazione, la configurazione o l’esecuzione delle funzionalità.

Riassumendo

Lo sviluppo di plugin per WordPress è un processo che trasforma le idee in funzionalità efficaci, integrandole nell’ampio ecosistema di questo sistema di gestione dei contenuti. Inizia creando un file principale conforme agli standard, sviluppando gradualmente una struttura organizzata dei file e comprendendo a fondo i meccanismi di interazione fondamentali, come gli “action hooks” e i “filter hooks”. Nell’implementare funzionalità specifiche (come i codici brevi o le pagine di configurazione), è essenziale adottare pratiche di codifica che garantiscano la sicurezza (verifica dei dati, escape dei caratteri, protezione dalle iniezioni di codice malintenzionato) e l’internazionalizzazione dei contenuti. Segui le migliori pratiche di sviluppo, ottimizza le prestazioni del plugin, gestisci correttamente le risorse e utilizza strumenti di debug per garantire la qualità del codice. Infine, dopo un’attenta fase di test in diversi ambienti e una preparazione accurata alla pubblicazione, il tuo plugin sarà in grado di funzionare in modo affidabile e sicuro per gli utenti di WordPress in tutto il mondo. Continuare a studiare i manuali ufficiali e le risorse della comunità è fondamentale per migliorare costantemente le proprie competenze nello sviluppo di plugin.

FAQ - Domande frequenti

Quali sono le conoscenze di base necessarie per sviluppare plugin per WordPress?

È necessario disporre di una solida conoscenza della programmazione in PHP, poiché la logica principale del plugin è scritta in questo linguaggio. Inoltre, è richiesta una conoscenza di base di HTML, CSS e JavaScript per la creazione delle interfacce utente e delle interazioni. La cosa più importante è essere familiari con l’architettura di base di WordPress, compreso il suo sistema di “hook” (azioni e filtri), il ciclo di sviluppo dei temi, la struttura del database, nonché l’uso delle varie funzioni e classi di base del framework.

Come posso evitare che il mio plugin entri in conflitto con altri plugin?

Aggiungere un prefisso unico a tutte le tue funzioni, classi, costanti, etichette di azioni/filtri e nomi di opzioni è il metodo più efficace per evitare conflitti. Non utilizzare nomi generici. add_user()$countAl contrario, si dovrebbe utilizzare un prefisso correlato al tuo plugin, ad esempio… myplugin_add_user()$myplugin_countIncorporare il proprio codice all’interno di classi o namespace rappresenta una buona pratica. Inoltre, quando si gestiscono script di attesa (queueing) e stili grafici, è consigliabile utilizzare identificatori unici per ciascun elemento, e prendere in considerazione il caricamento dei risorse soltanto quando necessario.

Dove dovrei memorizzare i dati del plugin?

Per le opzioni di configurazione semplici, si può utilizzare l’API Options di WordPress.add_option, get_option, update_option) Stocare i dati in wp_options Il modo più semplice e standard per gestire i dati è utilizzando tabelle. Tuttavia, se hai bisogno di memorizzare una grande quantità di dati personalizzati e strutturati (ad esempio, informazioni sui prodotti, gli ordini, ecc.), è consigliabile creare tabelle personalizzate all’interno di un database. $wpdb L’oggetto viene creato e utilizzato quando il plugin viene attivato. dbDelta() Esistono funzioni per creare e aggiornare la struttura dei database, il che garantisce la compatibilità tra diverse versioni di questi sistemi.

Dopo la rimozione di un plugin, come si possono eliminare i dati che esso ha creato?

WordPress offre due principali modalità per procedere. La prima consiste nell’utilizzare… register_uninstall_hook() La funzione registra un “hook” per l’installazione/dismontaggio del plugin. Il secondo metodo, e anche il più consigliato, consiste nel creare un file separato nella directory principale del plugin stesso. uninstall.php File. In questo file, è necessario verificare se è stata effettuata una chiamata dall’interno di WordPress. WP_UNINSTALL_PLUGIN Constante, quindi esegui l’operazione di eliminazione delle opzioni personalizzate (utilizzando…). delete_optionOperazioni di pulizia come la rimozione di file inutili e tabelle di database personalizzate. Si prega di specificare chiaramente, nella descrizione del plugin, quali dati verranno eliminati a seguito di tali operazioni.