Partendo da zero: guida completa allo sviluppo di plugin per WordPress e tutorial pratico

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

Preparativi e allestimento dell'ambiente.

Prima di sviluppare un plugin per WordPress, è essenziale creare un ambiente di sviluppo locale stabile. Questo ti permetterà di effettuare test e debug senza influenzare il sito web online.

Selezione e configurazione dell’ambiente di sviluppo locale

Il passo più importante è configurare un server locale che integri PHP, MySQL e Apache/Nginx. Puoi scegliere…MAMPXAMPPTali pacchetti di integrazione offrono metodi di installazione semplici sia per Windows che per macOS. Per gli utenti più esperti, è possibile utilizzare…DockerContainerizzare il proprio ambiente di sviluppo rappresenta attualmente la migliore pratica: permette di garantire l’omogeneità dell’ambiente e di semplificarne la replicazione. Qualunque approccio si scelga, assicurarsi che la versione di PHP utilizzata sia compatibile con quelle previste dai plugin (ad esempio PHP 7.4 o successivi) e che siano abilitate le estensioni necessarie, come MySQLi o PDO.

Installare e configurare WordPress.

Una volta che l’ambiente del server locale è pronto, è necessario installare il nucleo di WordPress. Scarica la versione più recente e stabile dal sito ufficiale di WordPress.org, quindi estrai il file archivio nella directory radice del sito web sul tuo server (ad esempio, nella directory “public”).htdocswwwIl plugin si trova all’interno di una cartella specifica, all’interno della directory principale del sito web. Successivamente, accedete a questa cartella tramite un browser e seguite i noti passaggi indicati per l’installazione (che richiedono solitamente circa cinque minuti). Si consiglia di creare un database dedicato allo sviluppo di plugin, e di annotare il nome del database, il nome utente e la password associati. Dopo l’installazione, accedete all’interfaccia di amministrazione di WordPress e impostate la struttura dei link fissi in un formato diverso da quello predefinito (ad esempio, basato sul nome dell’articolo), in modo da verificare la compatibilità del plugin con i link permanenti.

Si consiglia di leggere Introduzione allo sviluppo di temi WordPress: crea il tuo primo tema personalizzato da zero.

Consigli su strumenti di sviluppo essenziali

Lo sviluppo efficiente non può prescindere da strumenti adeguati. Innanzitutto, ti serve un editor di codice: uno che sia gratuito e allo stesso tempo potente.Visual Studio CodeInstalla i plugin adatti per PHP, WordPress e per il riconoscimento intelligente del codice. Inoltre, utilizza uno strumento di controllo versione.GitÈ un strumento essenziale per gestire i cambiamenti apportati al codice e per tracciare la sua evoluzione nel tempo. Gli strumenti di sviluppo forniti dai browser (come Chrome DevTools o Firefox Developer Edition) sono fondamentali per il debug del codice front-end. Infine, considera l’opportunità di installare uno strumento per il controllo della qualità del codice.PHP_CodeSnifferAbbinamentoWordPress-Coding-StandardsIl set di regole ti aiuta a seguire gli standard di codifica ufficiali di WordPress.

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

Struttura di base dei plugin e file principali

Un plugin standard per WordPress dispone di una struttura di directory e di file ben definita; rispettare queste regole è fondamentale affinché il plugin venga riconosciuto dal sistema e possa essere gestito correttamente.

La composizione di base del file principale e il suo funzionamento

Ogni plugin deve disporre di un file PHP principale che funge da punto di ingresso per il plugin stesso. Le note di testo iniziali di questo file contengono i metadati del plugin, che sono essenziali affinché WordPress possa riconoscerlo correttamente. Ecco un esempio di file principale per un plugin molto semplice.my-first-plugin.phpEsempio:

<?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
 */

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

Plugin NameQuesto è l’unico campo obbligatorio, necessario per essere visualizzato nell’elenco dei plugin sul lato backend. Si consiglia di definirlo.ABSPATHVerificare per impedire agli utenti malintenzionati di accedere direttamente ai file principali del plugin.

Aggiungere il codice funzionale essenziale al plugin.

Dopo aver aggiunto le note nella parte iniziale del codice, puoi iniziare a scrivere il codice funzionale del plugin. L’esempio più semplice consiste nell’aggiungere un messaggio “Hello World” nell’interfaccia di amministrazione del sito. Puoi utilizzare…add_actionI “hook” permettono di collegare funzioni personalizzate a specifici punti di esecuzione all’interno di WordPress.

Si consiglia di leggere Partendo da zero: una guida completa e un tutorial pratico per lo sviluppo di plugin WordPress.

/**
 * 在管理后台顶部显示欢迎信息
 */
function myfp_display_admin_notice() {
    echo '<div class="notice notice-success is-dismissible"><p>Benvenuto nell’utilizzo del mio primo plugin!</p></div>';
}
add_action( 'admin_notices', 'myfp_display_admin_notice' );

Per mantenere l’organizzazione del codice e evitare conflitti di nomi, tutti i nomi di funzioni e classi dovrebbero utilizzare un prefisso unico, come in questo caso.myfp_(L'acronimo di “My First Plugin”).

Norme di organizzazione del catalogo dei plugin e dei file di risorse

Un plugin con funzionalità più complesse di solito contiene diversi file. Una struttura di directory ben organizzata può migliorare notevolmente la manutenibilità del codice. I metodi più comuni per organizzare i file di un plugin sono i seguenti:
- /assets/Per conservare risorse statiche come CSS, JavaScript, immagini e font.
- /includes/Contiene i file delle classi PHP essenziali e i file delle funzioni funzionali.
- /admin/Contiene file PHP, CSS e JS relativi esclusivamente all’interfaccia di amministrazione dell’admin.
- /public/Contiene i file relativi alla parte front-end del sito web.
- /languages/Per conservare i file di traduzione internazionalizzati (.po, .mo).

Ricorda sempre che il file principale del plugin si trova nella directory radice del plugin stesso. Quando si fa riferimento ai file di risorse nel codice, è necessario utilizzare il percorso corretto.plugin_dir_url( FILE )plugin_dir_path( FILE )Per ottenere dinamicamente l’URL o la path del server corretti…

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%

Il meccanismo dei “hook” interagisce con le API principali del sistema.

L’anima dello sviluppo di plugin per WordPress risiede nel meccanismo dei “Hook” (Ganci): essi permettono al tuo codice di essere inserito e eseguito in momenti specifici del funzionamento del core di WordPress, dei temi o di altri plugin.

Comprendere i “action hooks” e i “filter hooks”

Gli hook si dividono in due categorie principali: Action e Filter. Gli hook di tipo Action vengono utilizzati per eseguire il codice quando si verifica un evento specifico, ad esempio dopo la pubblicazione di un articolo o prima del caricamento di una pagina. Non restituiscono alcun valore; si limitano semplicemente ad “eseguire” un’azione. La funzione principale utilizzata in questo contesto è…add_action()do_action()Gli “hook dei filtri” servono per modificare i dati. Prima che i dati vengano utilizzati, salvati o visualizzati, è possibile intercettarli e modificarli. Tali hook devono restituire un valore. La funzione principale utilizzata in questo contesto è…add_filter()apply_filters()

Montare funzionalità personalizzate sui punti di interazione standard (hook points)

Il nucleo di WordPress offre centinaia di “hook” standard. Ad esempio, è possibile aggiungere automaticamente una dichiarazione di copyright alla fine del contenuto di un articolo, utilizzando sia azioni (actions) che filtri (filters).

Si consiglia di leggere Sviluppo di plugin per WordPress: dall’approccio base alla padronanza completa: impara passo dopo passo come creare funzionalità personalizzate

// 使用过滤器修改文章内容
function myfp_add_copyright_to_content( $content ) {
    if ( is_single() ) {
        $copyright_text = '<p><em>Per riprodurre il contenuto, si prega di indicare la fonte.</em></p>';
        $content .= $copyright_text;
    }
    return $content;
}
add_filter( 'the_content', 'myfp_add_copyright_to_content' );

// 使用动作在文章保存时执行操作
function myfp_log_post_publish( $post_id ) {
    // 记录日志或执行其他后处理
    error_log( "文章 ID {$post_id} 已发布。" );
}
add_action( 'publish_post', 'myfp_log_post_publish' );

Creare e fornire hook personalizzati per l’estensione.

Un plugin ben progettato dovrebbe anche permettere ad altri sviluppatori di estenderne le funzionalità. Questo può essere realizzato creando i propri “hook” personalizzati. Questo non solo dimostra l’apertura dell’architettura del plugin, ma segue anche la filosofia stessa di WordPress.

// 定义一个自定义动作钩子
function myfp_process_data() {
    $data = '一些初始数据';
    // 其他开发者可以通过 ‘myfp_before_action’ 在此处插入代码
    do_action( 'myfp_before_action', $data );

// 插件的主要处理逻辑...

// 其他开发者可以通过 ‘myfp_after_action’ 在此处插入代码
    do_action( 'myfp_after_action', $data );
}

// 定义一个自定义过滤器钩子
function myfp_get_output() {
    $output = '默认输出';
    // 允许其他开发者过滤最终的输出
    return apply_filters( 'myfp_filter_output', $output );
}

Creare un’interfaccia di gestione dei plugin e opzioni di configurazione.

La maggior parte degli plugin richiede un’interfaccia di back-end che permetta all’utente di effettuare le configurazioni necessarie. WordPress offre diverse API per aiutarti a creare pagine di impostazioni e opzioni standard in modo rapido e sicuro.

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.

Utilizzare l’API di configurazione per la gestione delle opzioni di sicurezza.

L’API di configurazione di WordPress rappresenta un framework sicuro per la gestione dei moduli, la verifica dei dati, il loro salvataggio e la loro visualizzazione. Si occupa automaticamente dei campi di sicurezza (come i “nonce”) nonché dei controlli sui diritti di accesso. I passaggi fondamentali per creare una pagina di configurazione sono: 1) registrare una nuova configurazione, 2) aggiungere i blocchi relativi alle impostazioni, 3) inserire i campi necessari per la configurazione stessa. Il codice seguente mostra come registrare una configurazione semplice:

function myfp_register_settings() {
    register_setting(
        'myfp_settings_group', // 选项组名
        'myfp_option_name',    // 选项名(存储在wp_options表中)
        array( 'sanitize_callback' => 'myfp_sanitize_callback' ) // 消毒回调函数
    );

add_settings_section(
        'myfp_settings_section', // 区块ID
        '基本设置',               // 区块标题
        'myfp_section_callback', // 区块回调函数(可输出描述)
        'myfp-settings-page'     // 设置页面Slug
    );

add_settings_field(
        'myfp_text_field',      // 字段ID
        '示例文本输入',         // 字段标签
        'myfp_text_field_callback', // 字段回调函数(输出HTML表单域)
        'myfp-settings-page',   // 页面Slug
        'myfp_settings_section' // 所属区块ID
    );
}
add_action( 'admin_init', 'myfp_register_settings' );

Creare pagine per i menu e i sottomenu posizionati in diverse aree del sito web.

Devi aggiungere il link alla pagina delle impostazioni al menu di amministrazione di WordPress. Per farlo, segui questi passaggi:add_menu_page()È possibile creare un menu di livello superiore e utilizzarlo.add_submenu_page()È possibile creare sottomenu.

function myfp_add_admin_menu() {
    // 添加顶级菜单
    add_menu_page(
        '我的插件设置',        // 页面标题
        '我的插件',            // 菜单标题
        'manage_options',     // 权限能力
        'myfp-settings-page', // 菜单Slug
        'myfp_render_settings_page', // 渲染页面的回调函数
        'dashicons-admin-generic', // 图标(可选)
        80                    // 菜单位置
    );

// 添加子菜单(指向同一个页面,但菜单标题不同)
    add_submenu_page(
        'myfp-settings-page', // 父菜单Slug
        '关于此插件',         // 页面标题
        '关于',              // 菜单标题
        'manage_options',    // 权限能力
        'myfp-about-page',   // 菜单Slug
        'myfp_render_about_page' // 渲染回调
    );
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );

Funzione di callback per la pagina di rendering delle impostazioni personalizzate

myfp_render_settings_pageLa funzione di callback è responsabile di generare la struttura HTML della pagina di configurazione. All’interno di questa funzione, è necessario eseguire delle chiamate (call) a determinati componenti o metodi per completare la creazione della pagina.settings_fields()do_settings_sections()Eseguisci l’operazione per ottenere i campi registrati tramite l’API Settings.

function myfp_render_settings_page() {
    // 检查用户权限
    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( 'myfp_settings_group' );
            do_settings_sections( 'myfp-settings-page' );
            submit_button( '保存设置' );
            ?>
        <input type="hidden" name="trp-form-language" value="it"/></form>
    </div>
    &lt;?php
}

Riassumendo

Lo sviluppo di plugin per WordPress rappresenta un processo che trasforma le idee in funzionalità concrete; il successo di questo lavoro dipende da una comprensione chiara della struttura di base del sistema, da un’abilità consolidata nell’utilizzo dei meccanismi di integrazione (noti come “hook”), nonché da un’attenzione costante alla sicurezza e all’esperienza di utilizzo degli utenti. Dall’installazione dell’ambiente di sviluppo e dalla scrittura dei file principali, all’integrazione approfondita con WordPress tramite azioni (actions) e filtri (filters), fino alla creazione di interfacce di gestione professionali attraverso l’uso delle API, ogni passaggio segue specifiche norme e pratiche consigliate. È fondamentale mantenere il codice modulare, leggibile ed estensibile, utilizzare prefissi unici per evitare conflitti e dare sempre la priorità alla sicurezza. Grazie allo studio e alla pratica di questa guida, ora sei in grado di creare plugin per WordPress completi e conformi agli standard di qualità.

FAQ - Domande frequenti

Quali sono le basi di programmazione necessarie per sviluppare plugin per WordPress con il codice ###?
Per sviluppare plugin per WordPress sono necessarie conoscenze di base della lingua di programmazione PHP, inclusi la grammatica, le funzioni, gli array e i concetti di programmazione orientata agli oggetti. Inoltre, è utile avere una conoscenza di base delle tecnologie front-end come HTML, CSS e JavaScript, poiché sono fondamentali per lo sviluppo di plugin che includono interfacce utente. È anche vantaggioso essere familiari con le operazioni di base del database MySQL, poiché WordPress fa un uso estensivo dei database.

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

Esistono diversi metodi per debuggare i plugin. Inizialmente,wp-config.phpIl file è stato aperto.WP_DEBUGWP_DEBUG_LOGQuesto registrerà gli errori e gli avvisi di PHP in…/wp-content/debug.logI file contenenti il codice non vengono visualizzati agli utenti finali (front-end). Per debuggare il JavaScript e le richieste di rete, è possibile utilizzare gli strumenti di sviluppo del browser (ad esempio, Chrome DevTools). Per logiche più complesse, si possono applicare tecniche specifiche di ottimizzazione del codice.var_dump()error_log()La funzione esegue l’output dei valori delle variabili nel log o sulla pagina. Inoltre, l’installazione di strumenti di debug PHP professionali come Xdebug, integrati con il proprio editor di codice, consente di utilizzare la funzionalità di debug con punti di interruzione, rappresentando il metodo più efficace per risolvere problemi nel codice.

Come posso rendere il mio plugin internazionale per supportare più lingue?

Per implementare la localizzazione (i18n) in WordPress, si utilizzano principalmente gli strumenti e le funzionalità forniti dallo stesso framework.__()_e()_x()Utilizzate funzioni di traduzione per gestire i testi da tradurre. Nel codice del plugin, avvolgete tutte le stringhe da tradurre con queste funzioni, specificando anche il “dominio del testo” (Text Domain), ovvero quello definito nelle note all’inizio del plugin.Text DomainSuccessivamente, utilizzando strumenti come Poedit, si esegue la scansione del codice sorgente del plugin per generare il contenuto necessario..potFile di template: i traduttori utilizzano questi file per creare versioni del testo in diverse lingue..poE quello compilato….moFile. Infine, posizionare questi file di traduzione all’interno del plugin./languages/All’interno della directory, e utilizzarlo durante l’inizializzazione del plugin.load_plugin_textdomain()Le funzioni le caricano.

Come posso pubblicare il mio plugin gratuitamente nel catalogo ufficiale di plugin di WordPress?

Per pubblicare un plugin nel catalogo ufficiale di WordPress, è necessario soddisfare una serie di requisiti. Innanzitutto, assicurati che il tuo plugin rispetti completamente la licenza GPL v2 o una versione più recente. In secondo luogo, controlla la qualità e la sicurezza del codice, seguendo gli standard di codifica di WordPress. Successivamente, crea un account su WordPress.org e invia il plugin nella sezione dedicata ai sviluppatori. Prima di inviare il plugin, assicurati che esso sia completo e che sia presentato in un formato corretto.readme.txtIl file è stato creato utilizzando un formato Markdown specifico e l’internazionalizzazione è stata configurata correttamente. Dopo la submission, il team di revisione dei plugin lo esaminerà; il processo potrebbe richiedere da alcuni giorni a diverse settimane. Una volta superata la revisione, il tuo plugin sarà disponibile per la ricerca e l’installazione nel catalogo ufficiale.