Partendo da zero: l'infrastruttura di base per lo sviluppo di plugin WordPress.

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

Partendo da zero: l'infrastruttura di base per lo sviluppo di plugin WordPress.

Per sviluppare un plugin per WordPress, è necessario prima comprendere la sua struttura di base. Il file più importante di un plugin è il file principale, che di solito prende il nome dello stesso plugin. Ad esempio…my-first-plugin.phpQuesto file non contiene soltanto il codice funzionale dell’plugin, ma cosa più importante, anche le note relative alle informazioni sull’plugin presenti in cima al file stesso. Queste note sono fondamentali per che WordPress possa riconoscere correttamente l’plugin.

Le note presenti nella parte iniziale dei plugin devono contenere determinati metadati. Ecco un esempio di base:

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

Ho creato questo file e l’ho inserito nella giusta posizione./wp-content/plugins/Dopo aver creato il file di catalogo, potrete trovarlo sulla pagina “Plugin” nell’interfaccia amministrativa di WordPress e attivarlo o disattivarlo a seconda delle vostre esigenze. È fondamentale comprendere l’ordine di caricamento ed esecuzione del codice dei plugin. Quando WordPress carica i plugin, li esegue in ordine alfabetico./wp-content/plugins/Tutti i file principali dei plugin validi presenti nel directory. Pertanto, se il tuo plugin dipende dalle funzionalità di altri plugin, non puoi semplicemente dare per scontato che questi siano già stati caricati. In tal caso, è necessario utilizzare…plugins_loadedQuesto “action hook” serve a garantire che il codice venga eseguito nel momento giusto.

Si consiglia di leggere Una guida completa allo sviluppo di plugin per WordPress: da zero alla creazione di estensioni di livello commerciale.

Comprendere a fondo i “hook”: il meccanismo di azioni e filtri

La filosofia fondamentale dello sviluppo di plugin per WordPress è rappresentata dai cosiddetti “Hook”. I Hook consentono di inserire il proprio codice all’interno del flusso di esecuzione del nucleo di WordPress, dei temi o di altri plugin, senza dover modificare i file originali. Esistono principalmente due tipi di Hook: gli Action Hooks e i Filter Hooks.

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

Gli “action hooks” ti permettono di eseguire funzioni personalizzate quando si verificano eventi specifici. Ad esempio, quando un articolo viene pubblicato…publish_postQuando i contenuti vengono caricati nella parte superiore della pagina web (nel “header” della pagina).wp_enqueue_scripts) oppure durante l’inizializzazione dall’interfaccia di amministrazione.admin_initPer utilizzare un “action hook”, è necessario…add_action()La funzione “monta” la tua funzione di callback sul relativo “gancio” (hook).

add_action( 'init', 'myplugin_custom_init' );
function myplugin_custom_init() {
    // 在WordPress初始化时执行
    // 例如,注册一个自定义文章类型
}

Gli “hook” dei filtri vengono utilizzati per modificare i dati. Ti permettono di intercettare e modificare le variabili che vengono passate loro, per poi restituirle. Ad esempio, è possibile modificare il contenuto di un articolo.the_contentModifica della lunghezza degli estratti (…)excerpt_length) oppure modificare i risultati della ricerca (the_postsPer utilizzare i filtri, è necessario effettuare una chiamata (una funzione o un metodo).add_filter()Funzione.

add_filter( 'the_title', 'myplugin_custom_title' );
function myplugin_custom_title( $title ) {
    // 修改文章标题
    return '前缀:' . $title;
}

Creare un hook personalizzato

Oltre all’utilizzo dei centinaia di hook predefiniti forniti da WordPress, gli sviluppatori di plugin avanzati possono anche creare i propri hook, per permettere ad altri sviluppatori di estendere le funzionalità del sistema.do_action()Per creare un “action hook”, utilizza…apply_filters()Per creare un filtro hook…

// 在插件代码中定义一个自定义动作钩子
do_action( 'myplugin_after_something_happens', $some_data );

// 在插件代码中定义一个自定义过滤器钩子
$value = apply_filters( 'myplugin_filter_some_value', $default_value );

Creazione di funzionalità per plugin: sicurezza e migliori pratiche

Quando si sviluppano funzionalità per plugin, la sicurezza è un fattore da prendere in considerazione per primo. Non si deve mai fidare degli input forniti dagli utenti. Tutti i dati provenienti da fonti esterne (come moduli, parametri URL, cookie) devono essere verificati, puliti ed escapati.

Si consiglia di leggere Guida introduttiva allo sviluppo di plugin per WordPress: dalla creazione di funzionalità personalizzate all'acquisizione della perfezione in questo campo.

Convalida dei dati ed escape

Per quanto riguarda l’input, utilizzare…sanitize_text_field()sanitize_email()intval()Utilizzare funzioni di pulizia per i dati. Per i dati che vengono visualizzati su pagine HTML, applicare le opportune procedure di formattazione.esc_html()esc_attr()wp_kses_post()Eseguire l’escape per prevenire gli attacchi di tipo Cross-Site Scripting (XSS).

$user_input = $_POST['some_field'];
$clean_input = sanitize_text_field( $user_input );

// 输出时
echo '<div class="' . esc_attr( $class_name ) . '">'`. esc_html($clean_input)`.'</div>';

Interagire con il database

WordPress offre…$wpdbGli oggetti globali vengono utilizzati per operazioni dirette sul database, tuttavia è consigliabile dare la priorità alle funzioni integrate in WordPress.get_post()update_option()Etc. Se è necessario utilizzare SQL, assicuratevi di farlo in modo appropriato.$wpdb->prepare()Metodi per prevenire gli attacchi di iniezione SQL.

global $wpdb;
$user_id = intval( $_GET['id'] );
$results = $wpdb->get_results(
    $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}my_table WHERE user_id = %d", $user_id )
);

Aggiungere il menu di gestione e le pagine correlate.

Creare una pagina di configurazione per un plugin è una richiesta comune. Puoi utilizzare…add_menu_page()add_options_page()Queste funzioni vengono utilizzate per aggiungere elementi di menu in background. Dovrebbero essere eseguite…admin_menuChiamato all’interno degli action hooks.

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%
add_action( 'admin_menu', 'myplugin_add_admin_menu' );
function myplugin_add_admin_menu() {
    add_options_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限
        'myplugin-slug',  // 菜单别名
        'myplugin_settings_page' // 用于呈现页面的回调函数
    );
}
function myplugin_settings_page() {
    // 输出设置页面HTML
    echo '<div class="wrap"><h1>Impostazioni</h1></div>';
}

Preparazione alla pubblicazione del plugin: internazionalizzazione e organizzazione del codice

Quando le funzionalità del plugin saranno completamente sviluppate, sarà necessario prestare attenzione all’internazionalizzazione e all’organizzazione del codice, al fine di raggiungere un pubblico più ampio e semplificare la manutenzione del software.

Realizzare l'internazionalizzazione del plug-in.

L’internazionalizzazione (i18n) permette di tradurre i tuoi plugin in altre lingue. Per farlo, è necessario utilizzare le funzioni di traduzione fornite da WordPress.__()_e()_x()Includi tutte le stringhe visibili agli utenti all’interno del pacchetto, e dichiarale nella parte iniziale del plugin.Text Domain(Ad esempio,my-first-plugin)。

// 在代码中
$greeting = __( 'Hello, World!', 'my-first-plugin' );
_e( 'This text will be echoed and translatable.', 'my-first-plugin' );

// 然后,使用如Poedit等工具生成 .pot 翻译模板文件。

Organizzazione del codice modulare

Evita di accumulare tutto il codice nel file principale. Una buona pratica consiste nel dividere il codice relativo a funzionalità diverse in file separati..phpI file sono contenuti all’interno di un file principale, che a sua volta li include. Ad esempio:
- includes/admin/ Il directory contiene il codice relativo al backend.
- includes/public/ Il directory contiene il codice relativo alla parte front-end del sito web.
- includes/class-*.php Qui vengono conservate le principali definizioni delle classi.
- assets/css/assets/js/ Per conservare i file di stile (style sheet) e i file di script.

Si consiglia di leggere La guida definitiva allo sviluppo di plugin per WordPress: i trucchi fondamentali per creare funzionalità personalizzate da zero.

L’utilizzo della programmazione orientata agli oggetti permette di organizzare il codice in modo più efficace, evitare conflitti nei nomi delle funzioni e migliorare la riutilizzabilità del codice stesso. Definisci una classe principale e, nel suo metodo di costruzione, attacca (ovvero associa) tutti i “hook” (meccanismi di interazione) necessari.

class My_First_Plugin {
    public function __construct() {
        add_action( 'init', array( $this, 'init_method' ) );
        add_filter( 'the_content', array( $this, 'filter_content' ) );
    }
    public function init_method() {
        // 初始化
    }
    public function filter_content( $content ) {
        return $content . '<p>Aggiunta di contenuti tramite plugin</p>';
    }
}
new My_First_Plugin();

Riassumendo

Lo sviluppo di plugin per WordPress consiste nel processo di integrazione di funzionalità personalizzate in modo seamless all’ecosistema di WordPress. Tutto inizia da un file di commenti all’inizio del plugin, che deve seguire gli standard stabiliti. Il cuore dello sviluppo risiede nell’uso efficace degli “action hooks” e dei “filter hooks”, al fine di estendere o modificare il comportamento di WordPress in modo basato su eventi. Durante la fase di programmazione, la sicurezza deve essere sempre al primo posto: i dati vanno verificati con attenzione, puliti e opportunamente “escaped” (cioè resi sicuri per l’uso in un ambiente web). Con l’aumentare delle funzionalità del plugin, un’organizzazione del codice chiara (incluso un design orientato agli oggetti e una struttura dei file modulare), nonché il supporto all’internazionalizzazione, diventano passaggi essenziali per migliorare la manutenibilità, la professionalità del plugin e la sua diffusione tra gli utenti. Seguendo queste migliori pratiche, sarà possibile creare plugin per WordPress potenti, sicuri e facili da distribuire.

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.

FAQ - Domande frequenti

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

È necessario padroneggiare le basi del linguaggio PHP, poiché WordPress e i suoi plugin sono sviluppati in PHP. Inoltre, è fondamentale avere una conoscenza di base di HTML, CSS e JavaScript per gestire la visualizzazione e l’interazione dell’interfaccia utente. La cosa più importante è comprendere il funzionamento di base di WordPress e il suo sistema di “hook” (Hook), che rappresenta il meccanismo fondamentale per lo sviluppo di plugin.

Come posso evitare che i nomi delle funzioni dei miei plugin siano in conflitto con quelli di altri plugin?

La migliore pratica consiste nell’utilizzare la programmazione orientata agli oggetti (OOP) per incapsulare le funzionalità all’interno di una classe; in questo modo, i nomi dei metodi all’interno della classe sono indipendenti. Se si utilizza la programmazione procedurale, è necessario aggiungere un prefisso unico a tutte le funzioni, le classi e le costanti. Questo prefisso può essere l’abbreviazione del plugin o il nome del marchio.myplugin_acme_E assicurarsi di mantenere questa coerenza in tutto il codice.

Dove dovrei caricare i file JavaScript e CSS dei plugin?

Per garantire correttezza e prestazioni, non collegare mai direttamente i file di risorse nei template HTML. Dovresti utilizzare le funzioni di “incollo in coda” (enqueue) fornite da WordPress. Per i file relativi alla parte front-end del sito, utilizza…wp_enqueue_script()wp_enqueue_style()E montarlo su…wp_enqueue_scriptsSul “gancio delle azioni” (action hook). Per i risorse utilizzate esclusivamente dall’interfaccia di amministrazione in background, vengono montate (mounted) lì.admin_enqueue_scriptsSul gancio.

Come i plugin memorizzano le proprie impostazioni e i propri dati?

Per la configurazione di valori semplici e singoli, è possibile utilizzare l’API delle opzioni di WordPress.add_option()get_option()update_option()Per i dati più complessi e strutturati (ad esempio, elenchi di voci di un form), è consigliabile creare tabelle personalizzate nel database. È possibile utilizzare…dbDelta()La funzione viene eseguita quando il plugin viene attivato.register_activation_hookCreare o aggiornare la struttura di un tabella in modo sicuro.