Configurazione dell'ambiente di sviluppo dei plugin di WordPress.
Per iniziare a sviluppare plugin per WordPress, è necessario prima creare un ambiente di sviluppo locale professionale. Questo non solo ti permetterà di testare senza influenzare il sito web online, ma aumenterà anche notevolmente l'efficienza dello sviluppo. Un ambiente di sviluppo tipico include un software di server locale (come XAMPP, MAMP o Local by Flywheel), un editor di codice (come VS Code o PHPStorm) e un'installazione pulita di WordPress.
Il documento di sviluppo principale è il file principale del tuo plug-in, il cui nome segue regole specifiche. Il file principale del plug-in è solitamente un file PHP, ad esempio my-first-plugin.phpQuesto file deve contenere specifiche annotazioni di intestazione del plug-in, che WordPress utilizza per identificare il tuo plug-in leggendo queste informazioni. Un esempio di intestazione del plug-in più basilare è il seguente:
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://example.com/my-first-plugin
* Description: 这是一个简短的插件描述,用于在后台插件列表中显示。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://example.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ Inserisci il file che contiene il codice sopra indicato nella directory di installazione di WordPress. /wp-content/plugins/ Dopo averlo salvato nella cartella e aver acceduto alla pagina “Plugins” del backend di WordPress, potrai visualizzare e attivare il tuo plug-in. Anche se al momento non ha alcuna funzionalità, questo segna il successo della configurazione dell'ambiente di sviluppo.
Si consiglia di leggere Imparare a sviluppare plugin per WordPress: creare il tuo primo plugin personalizzato da zero.。
Comprendere la struttura della directory dei plug-in.
Con la crescente complessità delle funzionalità dei plug-in, diventa difficile mantenere tutto il codice in un file principale. Pertanto, è fondamentale stabilire una struttura chiara di file e cartelle. Una directory dei plug-in ben strutturata facilita non solo la collaborazione in team, ma anche l'estensione delle funzionalità in futuro.
Una struttura di directory di plug-in di medie dimensioni consigliata è la seguente:
\n
- my-plugin/ (Directorio principale del plug-in)
- my-plugin.php (Il file principale del plug-in, responsabile della guida e della definizione del nucleo)
- uninstall.php (Lo script di pulizia eseguito durante la disinstallazione del plug-in)
- includes/ (Archiviazione di file di classe o funzioni di funzionalità principali)
- admin/ (Archiviazione del codice relativo all'interfaccia di gestione di back-end)
- public/ (Salvare il codice che si trova sull'interfaccia utente prima di archiviarlo.)
- assets/ (Archiviazione di risorse statiche come CSS, JavaScript, immagini, ecc.)
- languages/ (Archiviazione dei file di traduzione internazionale .pot/.mo)
Nel file principale. my-plugin.php In questo caso, di solito si definiscono le costanti del plug-in (come il percorso del plug-in e l'URL) e quindi si utilizzano tali costanti. require_once Le frasi introducono i file di funzionalità presenti in altre directory, se necessario. Questo approccio modulare consente di gestire il codice in modo ordinato.
Meccanismo centrale dei plug-in: ganci e filtri.
La filosofia alla base dello sviluppo dei plugin di WordPress è quella dei “hook”. Il meccanismo dei hook consente di inserire il proprio codice in determinati punti o di modificare i dati restituiti da altre funzioni senza apportare modifiche al codice principale di WordPress. I hook sono principalmente di due tipi: azioni e filtri.
I hook di azione ti permettono di eseguire funzioni personalizzate quando si verificano eventi specifici. Ad esempio, quando viene pubblicato un articolo, quando un utente effettua il login o quando si carica il menu di back-end. Utilizza add_action() I funzioni possono “montare” le tue funzioni di callback sugli hook di azione specificati.
Si consiglia di leggere Imparare a sviluppare plugin per WordPress: creare il tuo primo modulo di funzionalità estesa da zero.。
I filtri hook ti permettono di modificare i dati. Nel processo di elaborazione di WordPress, i dati (come il contenuto dell'articolo, il titolo e l'estratto) passano attraverso una serie di filtri prima di essere inviati al database o al browser. Puoi utilizzare add_filter() Utilizzare una funzione per modificare questi dati.
Come aggiungere un hook di azione
Supponiamo che tu voglia aggiungere automaticamente una dichiarazione di copyright alla fine di ogni articolo. Ciò richiede di eseguire un'azione dopo che il contenuto dell'articolo è stato reso, ma più precisamente di modificare il contenuto dell'articolo, quindi è più appropriato utilizzare un filtro. Tuttavia, per dimostrare gli hook di azione, consideriamo di inviare un'email all'amministratore quando l'articolo viene pubblicato.
Prima di tutto, devi creare una funzione di callback, ad esempio: myplugin_notify_admin_on_publishPoi, usa add_action() La funzione lo monta su publish_post A questo punto, è necessario eseguire questa azione.
function myplugin_notify_admin_on_publish( $post_id, $post ) {
// 获取管理员邮箱
$admin_email = get_option( 'admin_email' );
$subject = '新文章已发布:' . $post->post_title;
$message = '您网站上的文章“' . $post->post_title . '”刚刚被发布。';
// 发送邮件
wp_mail( $admin_email, $subject, $message );
}
// 将函数挂载到 publish_post 动作钩子,优先级为10,接受2个参数
add_action( 'publish_post', 'myplugin_notify_admin_on_publish', 10, 2 ); Come aggiungere un hook di filtro
Ora, passiamo all'obiettivo iniziale: aggiungere le informazioni sul copyright alla fine del contenuto dell'articolo. Qui abbiamo bisogno di filtrare. the_content Questo dato.
function myplugin_add_copyright_to_content( $content ) {
// Assicurarsi che venga eseguito solo nella pagina di un singolo articolo del front-end del sito web
if ( is_single() && in_the_loop() && is_main_query() ) {
$copyright_text = ' function myplugin_add_copyright_to_content( $content ) {
// Ensure that it is executed only on the single article page of the website front-end
if ( is_single() && in_the_loop() && is_main_query() ) {
$copyright_text = '<p><em>Il copyright di questo articolo appartiene a questo sito; per ripubblicarlo, è necessario indicare la fonte.</em></p>'if ( ! is_admin() ) {
$content .= $copyright_text;
}
return $content; // È necessario restituire il contenuto modificato
}
add_filter( 'the_content', 'myplugin_add_copyright_to_content' ); Comprendere e utilizzare con competenza gli hook è la chiave per sbloccare le infinite possibilità di personalizzazione di WordPress.
Creare la pagina di gestione dei plug-in di amministrazione.
Molti plugin richiedono di fornire agli utenti opzioni di configurazione, che di solito vengono gestite tramite la pagina del menu di amministrazione all'interno del backend di WordPress. WordPress offre una serie di funzioni per aggiungere menu di primo livello o elementi di sottomenu e per rendere la pagina delle impostazioni corrispondente.
Si consiglia di leggere Imparare dall'inizio lo sviluppo di plugin per WordPress: creare la tua prima funzionalità personalizzata.。
Aggiungi un menu di gestione di alto livello.
Usare add_menu_page() Il metodo può creare una voce di menu di back-end indipendente per il tuo plug-in. Questo metodo richiede diversi parametri, tra cui il titolo della pagina, il titolo del menu, i permessi utente, l'alias del menu, la funzione di callback e così via.
Il codice seguente mostra come aggiungere una semplice pagina di menu di primo livello:
function myplugin_add_admin_menu() {
add_menu_page(
'我的插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 所需权限(管理员)
'myplugin-settings', // 菜单别名(slug)
'myplugin_render_settings_page', // 用于输出页面内容的回调函数
'dashicons-admin-generic', // 图标(使用Dashicons)
30 // 菜单位置
);
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );
// 渲染设置页面的回调函数
function myplugin_render_settings_page() {
?>
<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
// 输出设置字段、非ce等(需要先使用 settings_fields 和 register_setting)
settings_fields( 'myplugin_options' );
do_settings_sections( 'myplugin-settings' );
submit_button();
?>
<input type="hidden" name="trp-form-language" value="it"/></form>
</div>
<?php
} Creare una pagina non basta; di solito, abbiamo bisogno di aggiungere dei campi di impostazione salvabili alla pagina. Per questo, è necessario utilizzare l'API delle impostazioni di WordPress, che gestisce in modo sicuro la registrazione, la verifica e l'archiviazione delle opzioni.
Utilizzare l'API di impostazione per registrare le opzioni.
L'impostazione dell'API fornisce un modo standard e sicuro per creare moduli che includono campi come caselle di testo e caselle di controllo, e per salvare automaticamente i dati in WordPress. wp_options Nella tabella dei dati.
Per prima cosa, devi registrare un'opzione di impostazione, quindi aggiungere un'area di impostazione e un campo.
function myplugin_settings_init() {
// 注册一个新设置项 “myplugin_options”
register_setting(
'myplugin_options', // 选项组名
'myplugin_settings', // 存储在wp_options表中的option_name
'myplugin_sanitize_callback' // 可选的清理回调函数
);
// 在页面 “myplugin-settings” 上添加一个区域
add_settings_section(
'myplugin_section_general',
'通用设置',
'myplugin_section_general_callback',
'myplugin-settings'
);
// 向该区域添加一个字段
add_settings_field(
'myplugin_field_footer_text',
'页脚文本',
'myplugin_field_footer_text_callback',
'myplugin-settings',
'myplugin_section_general',
[ 'label_for' => 'myplugin_field_footer_text' ]
);
}
add_action( 'admin_init', 'myplugin_settings_init' );
// 字段渲染回调函数
function myplugin_field_footer_text_callback() {
$options = get_option( 'myplugin_settings' );
$value = $options['footer_text'] ?? ''; // PHP 7.0+ 空合并运算符
echo '<input type="text" id="myplugin_field_footer_text" name="myplugin_settings[footer_text]" value="' . esc_attr( $value ) . '" class="regular-text" />';
} In questo modo, la pagina di back-end creata garantisce la validazione, l'archiviazione e la sicurezza dei dati grazie al nucleo di WordPress, rappresentando la migliore pratica per lo sviluppo dell'interfaccia di gestione dei plugin.
La sicurezza dei plug-in e le migliori pratiche.
Per sviluppare un plug-in popolare, oltre ad essere potente, è necessario garantire che sia sicuro, efficiente e facile da mantenere. Seguire le norme di codifica della sicurezza è la responsabilità principale per proteggere i siti web degli utenti dagli attacchi.
Verifica, pulizia e conversione dei dati
Queste sono le tre linee di difesa della sicurezza di WordPress. In sintesi: la convalida controlla se i dati di input sono conformi al formato previsto (ad esempio, se si tratta di un indirizzo e-mail); la sanitizzazione rimuove le parti non sicure o illegali prima che i dati vengano inseriti nel database; l'escape assicura che i dati non vengano erroneamente interpretati come codice eseguibile quando vengono visualizzati nel browser (HTML, JavaScript, URL).
- Verifica: utilizzare funzioni come
is_email(),absint()。 - Pulizia: utilizzare funzioni come
sanitize_text_field(),sanitize_email(),wp_kses_post()(Utilizzato per consentire parte del contenuto HTML). - Escape: utilizzare funzioni come
esc_html()(Output all'interno dell'elemento HTML),esc_url()(Dato da inviare all’attributo URL),esc_attr()(Da inserire negli attributi HTML),wp_kses()(Escapismo selettivo).
Non fidarti mai degli input degli utenti. Quando ricevi dei dati (ad esempio, da un form o da un'API), controlla sempre se sono validi e sicuri. $_POST 或 $_GETÈ necessario effettuare una pulizia e, durante l'esportazione dei dati, è necessario eseguire l'escape.
Realizzare un endpoint AJAX sicuro.
Le funzionalità AJAX sono molto comuni nei plug-in. WordPress offre wp_ajax_{action} 和 wp_ajax_nopriv_{action} I hook gestiscono le richieste AJAX. La chiave della sicurezza risiede nel controllare i permessi (nonce) e le capacità dell'utente.
// 为登录用户添加AJAX处理
add_action( 'wp_ajax_myplugin_action', 'myplugin_handle_ajax_request' );
// 如果希望未登录用户也能访问,则需额外添加(慎用)
// add_action( 'wp_ajax_nopriv_myplugin_action', 'myplugin_handle_ajax_request' );
function myplugin_handle_ajax_request() {
// 1. 检查Nonce(防止跨站请求伪造)
check_ajax_referer( 'myplugin_secure_nonce', 'security' );
// 2. 检查用户权限(例如,只有管理员才能执行此操作)
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( '权限不足', 403 );
}
// 3. 获取并清理输入数据
$some_data = sanitize_text_field( $_POST['some_data'] ?? '' );
// 4. 处理业务逻辑...
$result = [ 'success' => true, 'message' => '处理成功' ];
// 5. 返回JSON响应
wp_send_json( $result );
} Quando si invia una richiesta in JavaScript front-end, è necessario passare il nonce tramite wp_localize_script Passalo.
Preparazione all'internazionalizzazione dei plug-in.
Per consentire ai tuoi plug-in di essere utilizzati da utenti di tutto il mondo, è necessario prepararli per l'internazionalizzazione (i18n). Ciò significa che tutte le stringhe rivolte agli utenti non devono essere scritte direttamente nel codice, ma devono essere avvolte nelle funzioni di traduzione di WordPress.
La funzione più utilizzata è __()(Ottieni la stringa tradotta) e _e()(Esporta la stringa tradotta). Devi definirla nella parte superiore del plug-in. Text DomainE usarlo in modo uniforme nel codice.
// 在插件主文件头部已定义:Text Domain: my-first-plugin
// 在代码中使用
$greeting = __( 'Hello, world!', 'my-first-plugin' );
_e( 'This text will be echoed and translatable.', 'my-first-plugin' ); Poi, puoi usare strumenti come Poedit per generare .pot I file dei modelli, in base ai quali i traduttori possono creare versioni in diverse lingue. .mo Documenti. Posiziona i documenti da tradurre nella cartella del plug-in. /languages/ Nella directory, WordPress caricherà automaticamente la traduzione corrispondente in base alle impostazioni della lingua del sito web.
Riassumendo
Lo sviluppo di plugin per WordPress è un processo che trasforma le idee in funzionalità, il cui fondamento è la comprensione del meccanismo degli hook, il rispetto delle norme di sicurezza e l'adozione di una struttura di codice modulare. Da quando si imposta l'ambiente e si scrive il primo file principale, fino all'integrazione profonda delle funzionalità principali di WordPress tramite gli hook di azione e filtro, fino alla creazione di un'interfaccia di amministrazione professionale, ogni fase dimostra la competenza degli sviluppatori. La sicurezza è la garanzia della longevità del plugin: la convalida, la pulizia e l'evasione dei dati, nonché l'implementazione sicura di AJAX sono i pilastri fondamentali. Infine, grazie alla preparazione per l'internazionalizzazione, il tuo plugin sarà in grado di servire gli utenti di tutto il mondo. Padroneggiando queste competenze fondamentali, avrai la capacità di creare plugin WordPress di alta qualità da zero.
FAQ - Domande frequenti
Quali conoscenze di base sono necessarie per sviluppare un plugin WordPress?
Lo sviluppo di un plug-in WordPress richiede una conoscenza di base del linguaggio di programmazione PHP, poiché la logica principale del plug-in è scritta in PHP. Allo stesso tempo, è necessaria una conoscenza di base di HTML, CSS e JavaScript per creare interfacce e interazioni front-end. Infine, è fondamentale comprendere l'architettura di base di WordPress, in particolare il sistema di hook, che include azioni e filtri, che rappresentano il modo principale in cui i plug-in interagiscono con WordPress.
Come posso debuggare il mio plugin WordPress?
Si consiglia di utilizzare la modalità WP_DEBUG. Nella directory principale di WordPress, wp-config.php Nel documento, verrà indicato che... define( 'WP_DEBUG', false ); Cambia in: define( 'WP_DEBUG', true );Questo mostrerà gli errori e gli avvertimenti di PHP sullo schermo e li registrerà. /wp-content/debug.log Nella documentazione. Allo stesso tempo, è possibile installare un plug-in di monitoraggio delle query (come Query Monitor) per analizzare in modo approfondito le query del database, l'esecuzione degli hook e i colli di bottiglia delle prestazioni. Gli strumenti di sviluppo del browser (Console, Network) sono anche fondamentali per il debug delle richieste JavaScript e AJAX.
Come può il mio plug-in essere compatibile con un tema o con altri plug-in?
Per garantire la massima compatibilità, è necessario seguire gli standard di codifica e le migliori pratiche di WordPress. Evitare i conflitti di denominazione con altri codici utilizzando prefissi per i nomi delle funzioni o delle classi specifici del plug-in. Utilizzare con cautela le variabili globali. Quando si aggiungono tabelle di database personalizzate, anche i nomi delle tabelle dovrebbero essere preceduti da un prefisso. Per le funzionalità che potrebbero essere estese da altri sviluppatori, considerare di fornire propri hook. Prima di modificare i dati globali (come le variabili di query), verificare il loro stato e, dopo l'operazione, ripristinare lo stato originale per quanto possibile. Effettuare test approfonditi tra temi e plug-in è un passaggio necessario per garantire la compatibilità.
Dopo aver completato lo sviluppo, come posso pubblicare il plug-in nella directory ufficiale di WordPress?
Prima di tutto, devi assicurarti che il plug-in sia completamente conforme alle linee guida ufficiali per lo sviluppo di plug-in e alle norme di codifica. Richiedi un account su WordPress.org e invia il plug-in. Devi ospitare il codice del plug-in in un repository SVN e fornire un file Readme.txt dettagliato (utilizzando un formato specifico). Il plug-in deve superare la revisione del codice ufficiale, che si concentra sulla sicurezza, la qualità del codice, i commenti del codice (che devono utilizzare lo stile DocBlock) e l'assenza di codice dannoso. Dopo l'invio riuscito, puoi aggiornare e mantenere la versione del tuo plug-in tramite SVN.
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 plugin per WordPress: dall’approccio iniziale alla padronanza per creare estensioni professionali
- Dall’zero all’uno: Guida dettagliata e pratica allo sviluppo di temi per WordPress
- Sviluppo di plugin per WordPress: dall’approccio iniziale alla maestria: crea il tuo primo plugin personalizzato