Padroneggiare lo sviluppo di plugin per WordPress rappresenta una competenza fondamentale per espandere le funzionalità di un sito web e soddisfare esigenze personalizzate, rispetto al semplice modificare i temi preesistenti. functions.php Rispetto ai file tradizionali, l’utilizzo di plugin consente di garantire che le funzionalità siano indipendenti dal tema scelto, facilitando così il processo di migrazione, gestione e manutenzione del sito web. In questo articolo verrai guidato passo dopo passo nella creazione di un plugin completo e conforme agli standard di codifica di WordPress, partendo da zero.
Preparativi e allestimento dell'ambiente.
Prima di scrivere la prima riga di codice, è necessario disporre di un ambiente di sviluppo appropriato e di una conoscenza di base dell’architettura di WordPress.
Configurazione dell’ambiente di sviluppo
Un ambiente di sviluppo locale standard rappresenta la base per uno sviluppo efficiente. Si consiglia l’uso di strumenti come XAMPP, MAMP o Local by Flywheel, che permettono di installare in un solo clic Apache, MySQL/Nginx, PHP e WordPress. Inoltre, assicurati che il tuo editor di testo o ambiente di sviluppo integrato (IDE), come VS Code o PhpStorm, supporti l’highlighting della sintassi PHP e i suggerimenti di codice: questo migliorerà notevolmente l’efficienza dello sviluppo.
Si consiglia di leggere Analisi approfondita dello sviluppo di plugin per WordPress: dall’approccio base alla personalizzazione efficiente。
Comprendere l’architettura dei plugin di WordPress
Un plugin per WordPress è essenzialmente uno o più file PHP, che vengono archiviati all’interno della directory dedicata ai plugin del sito web. wp-content/plugins/ Si trova all’interno del directory. Il suo principio fondamentale è il meccanismo dei “ganci” (hook). I plugin eseguono del codice in momenti specifici tramite i “ganci di azione” (action hooks) oppure modificano i dati restituiti da altre funzioni tramite i “ganci di filtro” (filter hooks). add_action 和 add_filter Queste due funzioni rappresentano le “chiavi” per iniziare a sviluppare plugin.
Crea il tuo primo plugin: una piccola utility per i saluti.
Creeremo un semplice plugin chiamato “Saluti quotidiani”. Questo plugin visualizzerà un widget di benvenuto personalizzato sul pannello di controllo del backend amministrativo del sito web.
Creare il file principale del plugin
Prima di tutto, wp-content/plugins/ Crea una nuova cartella all’interno del directory e dale il nome di… my-first-greeting-pluginAll’interno di quella cartella, creare il file principale del plugin. my-first-greeting-plugin.php。
Ogni plugin deve iniziare con delle note di testo standard nella parte iniziale del codice, che costituiscono il riconoscimento per WordPress per identificare le informazioni relative al plugin. Apri il file principale del plugin e inserisci il seguente codice:
<?php
/**
* Plugin Name: 每日问候
* Plugin URI: https://www.yourwebsite.com/my-first-greeting-plugin
* Description: 这是一个示例插件,用于在仪表盘显示个性化问候。
* Version: 1.0.0
* Author: Your Name
* Author URI: https://www.yourwebsite.com
* License: GPL v2 or later
* Text Domain: my-first-greeting
*/ Dopo aver salvato il file, accedi alla pagina “Plugin” nell’interfaccia di amministrazione di WordPress. Dovresti vedere il plugin “Daily Greetings” nell’elenco e poterlo attivare. Al momento, non dispone di alcuna funzionalità.
Si consiglia di leggere Guida definitiva allo sviluppo di plugin per WordPress: costruisci il tuo primo plugin da zero.。
Aggiungere widget al pannello di controllo
Successivamente, utilizzeremo WordPress per… wp_dashboard_setup Utilizzando i “action hooks” è possibile aggiungere un widget personalizzato al pannello di controllo (dashboard). Sotto le note presenti all’inizio del file principale, continua ad aggiungere il seguente codice:
// 添加仪表盘小工具
function mfgp_add_dashboard_widget() {
wp_add_dashboard_widget(
'mfgp_dashboard_widget', // 小工具唯一ID
'每日问候', // 小工具标题
'mfgp_dashboard_widget_content' // 显示内容的回调函数
);
}
add_action( 'wp_dashboard_setup', 'mfgp_add_dashboard_widget' );
// 定义小工具内容
function mfgp_dashboard_widget_content() {
$user = wp_get_current_user();
$hour = date('G'); // 获取当前小时(24小时制)
if ( $hour >= 5 && $hour < 12 ) {
$greeting = '早上好';
} elseif ( $hour >= 12 && $hour < 18 ) {
$greeting = '下午好';
} else {
$greeting = '晚上好';
}
echo '<p>' . sprintf( esc_html__( '%s,%s!欢迎回来。', 'my-first-greeting' ), $greeting, esc_html( $user->display_name ) ) . '</p>';
echo '<p>' . esc_html__( '这是你的第一个插件创建的问候小工具。', 'my-first-greeting' ) . '</p>';
} Questo codice fa due cose: innanzitutto, definisce una funzione. mfgp_add_dashboard_widgetUtilizzare wp_add_dashboard_widget La funzione registra un piccolo strumento (un “utility”). Successivamente, viene definito (definito)… mfgp_dashboard_widget_content La funzione è utilizzata per generare il contenuto dei gadget, che mostrano diversi saluti in base all’orario della giornata e il nome dell’utente attualmente connesso. Si noti che abbiamo utilizzato… esc_html__() 和 esc_html() Preparare le funzioni per la traduzione e applicare le opportune escape è una pratica importante per garantire la sicurezza e l’internazionalizzazione dei contenuti.
Dopo aver attivato il plugin, rinfresca la pagina del pannello di controllo e vedrai lo strumento “Saluti quotidiani”.
Rafforzamento delle funzionalità dei plugin e pratiche di sicurezza
Un plugin di base è già stato completato, ma per renderlo più robusto e professionale, dobbiamo prestare attenzione alla sicurezza, alla manutenibilità e alle possibilità di configurazione da parte degli utenti.
Pagina di configurazione degli aggiornamenti (Plugin Settings Page)
Sarebbe più utile permettere agli utenti di personalizzare i messaggi di saluto. Creeremo una semplice pagina di configurazione per il plugin.
Prima di tutto, usa admin_menu Aggiungere una pagina di menu sottocorrente al “action hook”:
Si consiglia di leggere Guida all’approccio di base allo sviluppo di plugin per WordPress: costruisci il tuo primo plugin personalizzato da zero。
// 添加设置菜单
function mfgp_add_admin_menu() {
add_options_page(
'每日问候设置', // 页面标题
'每日问候', // 菜单标题
'manage_options', // 所需权限
'my-first-greeting-plugin', // 菜单slug
'mfgp_settings_page_content' // 回调函数
);
}
add_action( 'admin_menu', 'mfgp_add_admin_menu' ); Successivamente, creare il contenuto della pagina di configurazione, le opzioni di registrazione e i meccanismi per salvare i moduli.
// 设置页面内容
function mfgp_settings_page_content() {
?>
<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( 'mfgp_settings_group' ); // 输出安全字段
do_settings_sections( 'my-first-greeting-plugin' ); // 输出设置区块
submit_button(); // 输出提交按钮
?>
<input type="hidden" name="trp-form-language" value="it"/></form>
</div>
<?php
}
// 初始化设置
function mfgp_settings_init() {
register_setting(
'mfgp_settings_group', // 选项组名
'mfgp_custom_message', // 选项名
array( 'sanitize_callback' => 'sanitize_text_field' ) // 清理回调
);
add_settings_section(
'mfgp_section', // 区块ID
'自定义问候设置', // 区块标题
null, // 区块描述回调(无)
'my-first-greeting-plugin' // 所属页面
);
add_settings_field(
'mfgp_field',
'自定义问候语前缀',
'mfgp_field_callback', // 输出字段HTML的回调
'my-first-greeting-plugin',
'mfgp_section'
);
}
add_action( 'admin_init', 'mfgp_settings_init' );
// 设置字段的回调函数
function mfgp_field_callback() {
$value = get_option( 'mfgp_custom_message', '祝您有愉快的一天,' );
echo '<input type="text" name="mfgp_custom_message" value="' . esc_attr( $value ) . '" class="regular-text" />';
echo '<p class="description">Questo testo verrà aggiunto prima dei saluti.</p>';
} Infine, modificare la funzione che gestisce il contenuto degli strumenti aggiuntivi in modo che le impostazioni personalizzate degli utenti vengano applicate correttamente.
// 更新小工具内容函数,使用自定义消息
function mfgp_dashboard_widget_content() {
$user = wp_get_current_user();
$hour = date('G');
$custom_msg = get_option( 'mfgp_custom_message', '祝您有愉快的一天,' );
if ( $hour >= 5 && $hour < 12 ) {
$greeting = '早上好';
} elseif ( $hour >= 12 && $hour < 18 ) {
$greeting = '下午好';
} else {
$greeting = '晚上好';
}
echo '<p>' . esc_html( $custom_msg ) . sprintf( esc_html__( '%s,%s!', 'my-first-greeting' ), $greeting, esc_html( $user->display_name ) ) . '</p>';
} Ora, nel menu “Impostazioni” del backend di WordPress, è disponibile la sezione “Saluti quotidiani”, che consente agli amministratori di salvare un prefisso personalizzato per i messaggi di saluto.
Seguire gli standard di sicurezza e di codifica.
Durante lo sviluppo, è necessario seguire le pratiche di sicurezza di WordPress: utilizzare le funzioni di escape appropriate per tutti i dati provenienti dagli utenti o dal database che verranno visualizzati. esc_html, esc_attr, esc_urlVerifica e pulizia di tutti i dati inseriti dagli utenti (ad esempio, utilizzando specifici algoritmi o regole di validazione). sanitize_text_fieldUtilizzare wp_kses_post 或 wp_kses Per consentire l’utilizzo di HTML sicuro, si consiglia di seguire le linee guida appropriate. Standard di codifica PHP ufficiali di WordPressPer garantire la chiarezza e l’uniformità del codice.
Internazionalizzazione dei plugin e preparazione alla pubblicazione
Per permettere al tuo plugin di essere utilizzato da utenti in tutto il mondo, l’internazionalizzazione è un passaggio essenziale. Inoltre, per prepararlo alla pubblicazione nel catalogo ufficiale, è necessario seguire alcune specifiche norme.
Realizzare l'internazionalizzazione del plug-in.
Abbiamo già utilizzato questo elemento nel codice. esc_html__() Per effettuare la traduzione della stringa da incapsulare, è necessario creare un file nella directory dei plugin. Questo passaggio è fondamentale per implementare la funzionalità di internazionalizzazione del software. languages Cartella. Successivamente, aggiungete il seguente codice dopo le note all’inizio del file principale per caricare il campo di testo:
// 加载文本域以实现国际化
function mfgp_load_textdomain() {
load_plugin_textdomain( 'my-first-greeting', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
add_action( 'plugins_loaded', 'mfgp_load_textdomain' ); In seguito, puoi utilizzare strumenti come Poedit per analizzare le stringhe di traduzione presenti nel codice del plugin e generare i file necessari per la traduzione. .pot I file di template vengono utilizzati per personalizzare l’aspetto delle pagine web in base alle lingue richieste (ad esempio, cinese, inglese, ecc.). zh_CNCreare .po E quello compilato… .mo File, inserisci. languages 文件夹。
Pronto per la pubblicazione nel catalogo ufficiale.
Se pianificate di inviare il plugin al catalogo di plugin di WordPress.org, è necessario assicurarvi che la qualità del codice sia elevata e che vengano inclusi i file di metadati necessari. Ad esempio, è importante creare… readme.txt Il file deve avere un formato conforme ai requisiti specificati. Specifiche norme di WordPressIl contenuto dovrebbe includere il nome del plugin, una descrizione, istruzioni per l’installazione, risposte alle domande più comuni, i log degli aggiornamenti, ecc. Inoltre, si potrebbe considerare l’aggiunta di un meccanismo per l’eliminazione del plugin: questo meccanismo dovrebbe provvedere a pulire le informazioni relative al plugin dal database quando l’utente lo disinstalla.
// 插件卸载时清理选项
function mfgp_uninstall_hook() {
delete_option( 'mfgp_custom_message' );
}
register_uninstall_hook( __FILE__, 'mfgp_uninstall_hook' ); Riassumendo
Con la creazione di questo plugin “Saluti quotidiani”, abbiamo percorso completamente il flusso principale dello sviluppo di plugin per WordPress: dalla creazione della struttura di base dei file, all’aggiunta di funzionalità utilizzando gli “action hooks”, fino alla realizzazione dell’interfaccia di gestione, all’attuazione di standard di sicurezza e alla preparazione per l’internazionalizzazione. La chiave sta nel comprendere e utilizzare con abilità il sistema di hook di WordPress, ponendo sempre al primo posto sicurezza e standard di codice. Questo semplice esempio rappresenta il punto di partenza per il tuo percorso nello sviluppo di plugin: puoi partire da qui per esplorare funzionalità più complesse, come codici brevi, tipi di articoli personalizzati, endpoint REST API, e sviluppare plugin professionali e potenti.
FAQ - Domande frequenti
In quale directory devono essere posizionati i plugin?
I plugin di WordPress devono essere posizionati all’interno del sito web. wp-content/plugins/ All’interno del directory, ogni plugin può essere un file PHP indipendente; tuttavia, è più comune che si tratti di una cartella con lo stesso nome del plugin, che contiene il file principale nonché altre risorse.
Perché il mio plugin non appare nell’elenco dei plugin disponibili in background?
Per favore, verifica se il formato delle note presenti all’inizio del file del plugin principale (come “Nome del plugin” e “Descrizione”) è corretto e completo. Assicurati che il file si trovi nella directory giusta e che WordPress abbia i permessi necessari per leggerlo. Inoltre, controlla se all’inizio del codice PHP non ci siano spazi o caratteri non necessari.
Come si debuggano gli errori PHP presenti in un plugin?
在 wp-config.php Nel documento, verrà indicato che... WP_DEBUG La costante è impostata su trueQuesto permetterà a WordPress di visualizzare sugli articoli gli errori, gli avvisi e le notifiche PHP. Si prega di notare che questa funzionalità deve essere attivata esclusivamente nell’ambiente di sviluppo e di disattivarla prima di pubblicare il sito online.
Qual è la differenza tra i file functions.php dei plugin e quelli dei temi?
Nel tema… functions.php Le funzionalità aggiunte in questo contesto sono legate al tema specifico utilizzato. Quando si cambia tema, queste funzionalità potrebbero non funzionare più. Al contrario, le funzionalità fornite dai plugin sono indipendenti dal tema: sono sempre disponibili, purché il plugin sia attivo, indipendentemente dal tema scelto. Per le funzionalità che hanno un’utilità generale (ovvero che possono essere utilizzate in più contesti), lo sviluppo di plugin rappresenta una scelta migliore.
Come posso permettere ad altri sviluppatori di estendere il mio plugin?
È possibile permettere ad altri sviluppatori di estendere il tuo plugin fornendo “action hooks” (ganci per azioni) e “filter hooks” (ganci per filtri) personalizzati. do_action() Crea degli “action hooks” (ganci per azioni) e esegui le operazioni necessarie nei punti in cui è richiesto l’inserimento di codice. apply_filters() Creare “hook” per i filtri permette di modificare determinati valori di dati all’interno del proprio plugin. Questo rappresenta un modello comune di collaborazione tra plugin nell’ecosistema di WordPress.
Il prossimo passo, cosa dovremo fare dopo?
Per una lettura approfondita e conoscenza pratica
I seguenti contenuti sono correlati all'argomento di questo articolo e sono adatti per una lettura approfondita. È consigliabile iniziare con l'articolo più vicino al tuo problema attuale, per poi passare gradualmente agli argomenti correlati, il che di solito dà risultati migliori.
- Come scegliere e personalizzare il tema WordPress perfetto per te?
- Guida allo sviluppo di plugin per WordPress: Crea il tuo primo plugin personalizzato da zero
- Diventare uno sviluppatore di plugin per WordPress: una guida completa da zero a uno
- Dallo zero all’uno: Una guida completa e pratica per costruire siti web professionali con WordPress
- Guida completa allo sviluppo di plugin per WordPress: dall’approccio iniziale alla padronanza per creare estensioni professionali