Preparativi prima dello sviluppo
Prima di iniziare a scrivere il codice, dobbiamo assicurarci che l’ambiente di sviluppo sia correttamente configurato e comprendere la struttura di base di un plugin per WordPress. Un ambiente di sviluppo locale adeguato rappresenta la base per un lavoro efficace.
Configurare un ambiente di sviluppo locale
Prima di tutto, ti servirà un ambiente di server locale per eseguire WordPress. Si consiglia l’uso di strumenti integrati come XAMPP, MAMP o Local by Flywheel. Dopo aver installato WordPress, potrai… wp-content/plugins Inizia lo sviluppo del tuo plugin all’interno di questo directory. Questo directory contiene tutti i plugin, sia quelli che hai sviluppato tu stesso che quelli installati dal catalogo ufficiale.
Comprendere i file principali del plugin
Ogni plugin per WordPress richiede almeno un file principale, che funge da “carta d’identità” e da “punto di partenza” per il funzionamento del plugin stesso. Questo file di solito prende il nome dalla funzionalità principale che il plugin svolge. my-first-plugin.phpIl blocco di commenti in cima al file principale è di fondamentale importanza: fornisce al sistema WordPress le informazioni di base su questo plugin.
Si consiglia di leggere Sviluppo di plugin per WordPress: dall’approccio base alla maestria: impara passo dopo passo a creare il tuo primo plugin personalizzato。
Crea il tuo primo file di plugin.
Ora, iniziamo dalle parti più fondamentali per creare un semplice plugin con funzionalità reali.
Scrivere le note di testo nella parte iniziale del plugin.
在 wp-content/plugins All’interno della directory, creare un file chiamato… my-first-plugin Crea una nuova cartella. Successivamente, all’interno di questa cartella, crea il file principale. my-first-plugin.phpAll’inizio di questo file, è necessario aggiungere una nota di testo che contenga le informazioni relative al plugin, in conformità con gli standard di WordPress.
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://yourwebsite.com/my-first-plugin
* Description: 这是一个用于学习的简单插件,用于在文章末尾添加自定义文本。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://yourwebsite.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ Questo codice indica a WordPress che si tratta di un plugin e definisce il nome, la descrizione, la versione e altre informazioni che verranno visualizzate nell’interfaccia di amministrazione. Dopo aver salvato il file, fai login nell’area di amministrazione di WordPress e vai alla pagina “Plugin”: il tuo plugin dovrebbe apparire nell’elenco. Ora puoi attivarlo, anche se al momento non dispone di alcuna funzionalità.
Implementare una funzionalità di base: filtrare il contenuto degli articoli.
Dopo aver attivato il plugin, dobbiamo far sì che esegua qualcosa. Una funzione di base molto comune è quella di modificare il contenuto degli articoli. La utilizzeremo per… the_content Questo “filter hook” aggiunge automaticamente un testo personalizzato alla fine di ogni articolo.
Nel file principale. my-first-plugin.php Sotto i commenti in testa, aggiungiamo il codice funzionale:
Si consiglia di leggere Come creare un tema WordPress professionale: una guida completa da zero all’attivazione online。
// 在文章内容末尾添加自定义文本
function myfp_add_custom_text_to_content( $content ) {
// 确保只在主循环的单篇文章页面添加
if ( is_single() && in_the_loop() && is_main_query() ) {
$custom_text = '<p><strong>Grazie per la lettura! Questo articolo è stato realizzato con il supporto di “Il mio primo plugin”.</strong></p>';
$content .= $custom_text;
}
return $content;
}
// 将我们的函数挂载到 ‘the_content’ 过滤器上
add_filter( 'the_content', 'myfp_add_custom_text_to_content' ); Questo codice definisce una struttura chiamata… myfp_add_custom_text_to_content La funzione in questione riceve il contenuto di un articolo. $content Come parametro, si utilizza una condizione per garantire che il testo venga aggiunto soltanto sulla pagina di un singolo articolo visualizzata dall’utente, evitando che venga applicato anche ad altre pagine (ad esempio, le pagine di elenco). Successivamente, viene inserito un segmento HTML personalizzato alla fine del contenuto originale e viene restituito il contenuto modificato. add_filter() La funzione “monta” questa funzione personalizzata nel nucleo di WordPress. the_content Il filtro è stato applicato. In questo modo, ogni volta che WordPress è pronto a visualizzare il contenuto degli articoli, esegue prima la nostra funzione.
Dopo aver salvato il file, visita la pagina principale del sito web e seleziona un qualsiasi articolo: noterai che nella parte inferiore della pagina è apparso il testo di ringraziamento che abbiamo aggiunto.
Aggiungere opzioni di gestione per il plugin.
Un plugin ben funzionante di solito richiede alcune opzioni di configurazione che permettano agli utenti di effettuare modifiche in background. Aggiungeremo una pagina di configurazione per la funzione di “testo personalizzato” che abbiamo appena creato.
Creare il menu di gestione dei plugin
Innanzitutto, dobbiamo aggiungere un nuovo elemento di menu nel menu di gestione presente nel lato destro della barra di navigazione del backend di WordPress. Per farlo, è necessario utilizzare le funzionalità disponibili all’interno di WordPress stesso. add_action() Le funzioni e admin_menu Gancio.
// 添加管理菜单
function myfp_add_admin_menu() {
add_options_page(
'我的第一个插件设置', // 页面标题
'我的插件设置', // 菜单标题
'manage_options', // 权限要求
'my-first-plugin', // 菜单 slug
'myfp_options_page_html' // 显示设置页面的回调函数
);
}
add_action( ‘admin_menu’, ‘myfp_add_admin_menu’ ); add_options_page() La funzione creerà un elemento di menu secondario all’interno del menu principale “Impostazioni”. Richiede diversi parametri: il titolo della pagina, il titolo del menu, i permessi degli utenti, un identificatore unico per il menu (slug), nonché il nome di una funzione di callback utilizzata per generare il contenuto HTML della pagina delle impostazioni. myfp_options_page_html。
Creare una pagina di configurazione e salvare i dati.
Successivamente, dobbiamo definire una funzione di callback per rendere la pagina di configurazione e gestire i dati inviati dall’utente.
Si consiglia di leggere Tutorial per lo sviluppo di plugin per WordPress: Costruisci il tuo primo plugin da zero。
// 渲染设置页面的HTML
function myfp_options_page_html() {
// 检查用户权限
if ( !current_user_can( 'manage_options' ) ) {
return;
}
?>
<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’ );
// 输出设置区域
do_settings_sections( ‘my-first-plugin’ );
// 输出提交按钮
submit_button( ‘保存设置’ );
?>
<input type="hidden" name="trp-form-language" value="it"/></form>
</div>
‘myfp_field_custom_text’ ]
);
}
add_action( ‘admin_init’, ‘myfp_settings_init’ );
// 渲染文本框的HTML
function myfp_field_custom_text_html() {
// 从数据库获取已保存的值
$options = get_option( ‘myfp_options’ );
$value = $options[‘myfp_field_custom_text’] ?? ‘’; // 使用空合并运算符,如果不存在则赋空值
?>
<input type="“text”"
id="“myfp_field_custom_text”"
name="“myfp_options[myfp_field_custom_text]”"
value="“NO NUMERIC NOISE KEY" 1000”
class="“regular-text”">
<?php
} Questo codice funziona attraverso… register_setting、add_settings_section 和 add_settings_field Una serie di funzioni è stata utilizzata per creare, in modo conforme alle specifiche dell’API Settings di WordPress, una pagina di configurazione che include un campo di input testuale. Il contenuto inserito dall’utente viene salvato in modo sicuro. wp_options tabellare myfp_options Registrato.
Infine, dobbiamo modificare la funzione che in precedenza utilizzava per filtrare il contenuto degli articoli, in modo che utilizzi il testo ottenuto dal database, invece di testo codificato in modo statico.
function myfp_add_custom_text_to_content( $content ) {
if ( is_single() && in_the_loop() && is_main_query() ) {
$options = get_option( ‘myfp_options’ );
$custom_text = $options[‘myfp_field_custom_text’] ?? ‘’;
if ( ! empty( $custom_text ) ) {
$content .= ‘<p><strong>’ . esc_html( $custom_text ) . ‘</strong></p>’;
}
}
return $content;
} Ora, gli utenti possono inserire qualsiasi testo sulla pagina “Impostazioni” -> “Impostazioni dei miei plugin”. Dopo aver salvato le modifiche, il testo verrà visualizzato alla fine di tutti gli articoli sul sito web.
Pratiche avanzate di sviluppo di plugin e preparazione alla pubblicazione
Una volta completate le funzionalità di base, dobbiamo considerare la robustezza e la manutenibilità dei plugin, nonché il modo in cui possiamo condividerli con altre persone per il loro utilizzo.
Aggiungere supporto per la sicurezza e l’internazionalizzazione.
La sicurezza rappresenta un aspetto di fondamentale importanza nello sviluppo di plugin. Nel caso precedente, abbiamo già adottato alcune misure per garantire la sicurezza del codice. esc_html() 和 esc_attr() Utilizzare funzioni fornite da WordPress per escapare i dati in output, al fine di prevenire attacchi XSS. Quando si gestiscono input forniti dagli utenti, si eseguono query sul database o si importano file esterni, è sempre necessario utilizzare le funzioni di sicurezza fornite da WordPress. wpdb->prepare()、sanitize_text_field() 和 check_admin_referer() etc.
Inoltre, per consentire all’uso del plugin da parte di utenti in tutto il mondo, l’internazionalizzazione (i18n) è essenziale. Dobbiamo incapsulare tutte le stringhe rivolte agli utenti presenti nel plugin all’interno delle funzioni di traduzione fornite da WordPress. Questo richiederà di modificare il codice che abbiamo scritto in precedenza.
1. 在插件头部注释中已指定 Text Domain: my-first-plugin。
2. 加载文本域。通常在主文件底部添加:add_action( ‘plugins_loaded’, function() { load_plugin_textdomain( ‘my-first-plugin’, false, dirname( plugin_basename( FILE ) ) . ‘/languages/’ ); } );。
3. 包裹字符串。例如,将设置区域的标题改为 ( ‘自定义文本设置’, ‘my-first-plugin’ )Cambia il titolo del menu in… ( ‘我的插件设置’, ‘my-first-plugin’ )In questo modo, il traduttore potrà procedere con il lavoro. .po/.mo Il file fornisce le versioni di questi testi in altre lingue.
Preparo il plugin per la pubblicazione nel catalogo ufficiale.
Se desideri inviare un plugin al catalogo ufficiale di plugin di WordPress.org, devi seguire una serie di specifiche e linee guida.
1. 代码规范:遵守 WordPress 编码标准。
2. 文件结构:除主文件外,通常还需要 README.txtDescrizione del plugin: utilizzato per le pagine di catalogo.uninstall.php(Lavori di pulizia durante lo scarico dei plugin), ecc.
3. SVN 仓库:官方目录使用 Subversion (SVN) 进行版本管理,你需要将你的插件代码提交到指定的 SVN 仓库。
4. 元数据:README.txt È necessario compilare l’informazione secondo un formato specifico, che includa il nome del plugin, una descrizione, il metodo di installazione, le domande più comuni, i log degli aggiornamenti, e altro ancora.
Riassumendo
Attraverso questo tutorial, hai completato un intero ciclo di sviluppo di un plugin per WordPress: dalla creazione del primo file, alla scrittura delle annotazioni nel codice, all’utilizzo degli “action hooks” e degli “filter hooks” per implementare le funzionalità principali, fino all’aggiunta di pagine di configurazione personalizzabili per il plugin. Infine, hai anche acquisito conoscenze avanzate riguardo alla sicurezza, all’internazionalizzazione e alle procedure di preparazione alla pubblicazione del plugin. Il plugin in questione, che aggiunge testo personalizzato alla fine degli articoli, è semplice da utilizzare, ma rappresenta perfettamente i concetti e i processi fondamentali dello sviluppo di plugin. Una volta acquisite queste nozioni di base, potrai esplorare il vasto sistema di “hooks”, i “shortcodes”, i tipi di articoli personalizzabili (Custom Post Types – CPT) e l’API REST di WordPress per creare plugin sempre più potenti e complessi. Ricorda: la pratica è il miglior modo per imparare; provare a modificare il codice e ad aggiungere nuove funzionalità è fondamentale per consolidare le tue conoscenze.
FAQ - Domande frequenti
Come deve chiamarsi il file principale del plugin?
Non esistono requisiti obbligatori per la denominazione del file principale del plugin, tuttavia esso deve iniziare con una determinata stringa. .php “Fine.” Di solito, per motivi di chiarezza e unicità, utilizziamo nomi che coincidono con il nome della cartella del plugin o che descrivono le funzionalità di questo stesso plugin. Ad esempio… my-awesome-plugin.phpWordPress riconosce i plugin leggendo un blocco di commenti specifico presente all’inizio di quel file.
Perché il mio plugin non appare nel menu di back-end?
Di solito, ci sono diversi motivi che possono causare questo problema. Prima di tutto, verifica se il plugin è stato attivato con successo. In secondo luogo, controlla… add_menu_page() I parametri relativi ai diritti di accesso (capability) presenti in funzioni simili devono essere verificati per assicurarsi che l’utente connesso possieda i permessi necessari. manage_optionsInfine, verifica se la tua funzione viene eseguita correttamente. add_action(‘admin_menu’, …) Montaggio: Qualsiasi errore di sintassi PHP può causare il fallimento dell’inizializzazione dell’intero plugin.
Come si debuggano gli errori PHP presenti in un plugin?
Durante la fase di sviluppo, si consiglia di attivare il modalità di debug di WordPress. Per farlo, aprire il file `wp-config.php` situato nella directory radice del sito web. wp-config.php Per il file, assicurati che siano abilitate le seguenti impostazioni:
define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG_LOG’, true ); // 将错误记录到 /wp-content/debug.log
define( ‘WP_DEBUG_DISPLAY’, false ); // 不建议在页面上显示,以免破坏布局
In questo modo, i messaggi di errore verranno registrati nel file di log, facilitando la ricerca dei problemi. Prima di pubblicare il plugin, assicurati di disattivare il modalità di debug.
Dove vengono salvati i dati delle opzioni dei plugin?
Utilizzo degli plugin add_option() 或 update_option() I dati salvati dalle funzioni vengono memorizzati, per impostazione predefinita, nel database di WordPress. wp_options Nella tabella (il prefisso della tabella potrebbe essere diverso). Utilizzare… get_option() Le funzioni possono leggere questi dati. Per strutture di dati più complesse, a volte vengono create tabelle di database personalizzate, ma questo richiede un trattamento più attento e cauto.
Come posso rendere il mio plugin compatibile con più lingue (internazionalizzazione)?
Devi utilizzare le funzioni di traduzione di WordPress per incapsulare tutte le stringhe destinate all’utente. Le più comuni sono… __(‘字符串’, ‘text-domain’) 和 _e(‘字符串’, ‘text-domain’)Poi, utilizzare strumenti come Poedit per estrarre queste stringhe e generare il risultato desiderato. .pot File di template, e creazione delle versioni in lingua corrispondente (ad esempio…) zh_CN.po 和 .moInfine, posizionare il file di lingua nella directory del plugin. /languages/ All’interno della cartella, e utilizzarlo durante l’inizializzazione del plugin. load_plugin_textdomain() Le funzioni le caricano.
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.
- 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
- Guida completa allo sviluppo di temi per WordPress: un corso pratico per passare dall’essere principianti all’essere esperti
- Guida completa allo sviluppo di temi per WordPress: costruire template per siti web di livello professionale da zero
- Guida completa allo sviluppo di plugin per WordPress: dall’approccio iniziale alla padronanza per creare estensioni professionali