>
>本文將重點介紹創(chuàng)建和激活插件,以及開發(fā)插件的管理功能。為了遵循本教程,您需要對PHP和WordPress的基本了解,并且對WordPress插件API具有工作知識。鑰匙要點
- >使用WordPress插件樣板通過結(jié)構(gòu)化的,有組織的方法加快開發(fā)過程,確保遵循最佳實踐。
- >通過使用設置API添加選項頁面來自定義插件,以允許用戶修改設置,例如通知的顯示位置以及后來考慮過時的幾天。 >通過注冊設置,添加設置字段以及使用樣板中提供的類和方法來處理這些設置值的保存和檢索。
- >通過為選項頁面創(chuàng)建一個干凈,用戶友好的界面來優(yōu)化插件的面向式功能,并確保正確保存和顯示設置。 >
- >計劃進一步增強,例如代碼清理,國際化和更有選擇性的應用程序邏輯,以完善插件的效率和用戶體驗。
- 關(guān)于插件的 >
- >我們將開發(fā)一個簡單的插件,該插件將顯示自上次更新特定帖子以來的天數(shù)。我們還將為插件提供幾個簡單的自定義,從而允許用戶選擇特定數(shù)量,然后將其視為過時的帖子,以及在帖子內(nèi)容中的通知位置。 > 準備樣板
>正如第一篇文章所述,我們可以下載樣板的新副本,進行搜索并自行更換,或者我們可以使用非正式的WordPress插件樣板生成器來加快流程。讓我們將發(fā)電機用于插件。
>>前往WordPress插件生成器網(wǎng)站,并用適當?shù)闹堤顚懕韱?。讓我們稱我們的插件為“過時的通知”。這是一個示例表格,其中填充了字段。
>>我正在為鏈接到官方存儲庫的插件URL使用一個假想的URL。不必太擔心這些東西,因為我們始終可以在插件標題中對其進行修改。
>
單擊“構(gòu)建”按鈕,您應該獲得WordPress插件板的不錯的自定義副本。
>安裝和激活插件生成的郵政編碼將包含兩個預期的目錄,資產(chǎn)和中繼。我們不會在安裝插件時使用Symlink路由,因此請在存檔中提取中繼文件夾并將其復制到WP-CONTENT/插件目錄中。
>
>我們?nèi)匀恍枰m當?shù)刂孛员苊馀c其他插件的命名沖突,因此我們將把Trunk Directory重命名為過時的通用。如果您現(xiàn)在轉(zhuǎn)到WP-Admin中的“已安裝插件”部分,則可以肯定的是,您會看到插件已在已安裝但尚未激活的插件列表中。插件樣板生成器對插件描述沒有更改任何內(nèi)容,因此,如果要更改它,我們可以簡單地在主插件文件中編輯描述,在我們的情況下,eutated-notice.php。
>單擊“激活”以激活閃亮的新插件。您的WordPress網(wǎng)站上什么都不會改變,因此請不要擔心激活插件后什么都看不到。
>
>插件開發(fā)人員通常為用戶提供一種自定義插件設置的方法。這可以通過使用WordPress提供的設置API來實現(xiàn)。讓我們看看如何將自己的設置集成到插件中。
> 簡而言之,我們將允許用戶在帖子內(nèi)容之前或郵政內(nèi)容之后選擇通知出現(xiàn)的位置。就閾值的天數(shù)而言,用戶可以設置要過時的帖子之前的天數(shù)。使用這些信息,我們將動態(tài)更改通知的類別,以便我們可以與仍然被認為是新鮮的帖子進行不同的樣式。
>讓我們開始添加一個插件的選項頁面。
>>在管理文件夾中打開class-of-notice-admin.php。我們需要修改此類,以允許我們?yōu)椴寮栽O置頁面。將此公共方法添加到班級結(jié)束時。
>>要注意的一件事是,由于我們正在使用類來定義鉤子,因此我們需要以數(shù)組的形式傳遞一個數(shù)組(
<span>/** </span><span> * Add an options page under the Settings submenu </span><span> * </span><span> * <span>@since 1.0.0 </span></span><span> */ </span> <span>public function add_options_page() { </span> <span>$this->plugin_screen_hook_suffix = add_options_page( </span> <span>__( 'Outdated Notice Settings', 'outdated-notice' ), </span> <span>__( 'Outdated Notice', 'outdated-notice' ), </span> <span>'manage_options', </span> <span>$this->plugin_name, </span> <span>array( $this, 'display_options_page' ) </span> <span>); </span> <span>}</span>
應該做到的。我們現(xiàn)在需要做的最后一件事是使用樣板中提供的加載程序類正確加載它。在Include文件夾中打開您的類列出的notice.php,并添加我們在define_admin_hooks方法內(nèi)定義的其他掛鉤。在我們的選項頁面上包含的適當操作掛鉤是admin_menu,所以讓我們添加它。
><span>/** </span><span> * Render the options page for plugin </span><span> * </span><span> * <span>@since 1.0.0 </span></span><span> */ </span> <span>public function display_options_page() { </span> <span>include_once 'partials/outdated-notice-admin-display.php'; </span> <span>}</span>
>您現(xiàn)在應該在設置下查看附加的“過時通知”子菜單。您可以通過訪問URL http:// /wp-admin/options-general.php?page=Outdated-notice。
>現(xiàn)在是一個空白頁,所以讓我們開始使用正確的標記填充部分文件。注冊,保存和檢索設置值
WordPress codex上的設置API頁面提供了一個很好的解釋,以說明如何注冊我們自己的設置,包括在選項頁面上顯示它們。
這是我們將要做的事情的細分:
用樣板加載器注冊鉤子
- 注冊設置部分
- 注冊兩個設置字段(閾值天數(shù)和文本位置)
- 注冊兩個設置
- 填充選項頁面
- 保存并重新播放顯示字段。
- >將鉤子注冊到樣板加載器
>
>要注冊設置部分,我們將需要使用register_setting函數(shù)。適當?shù)膾煦^以初始化該函數(shù)是admin_Init。因此,首先,我們將在樣板加載器中添加另一個鉤子,以在我們的主樣本類的Define_admin_hooks方法中注冊我們的設置。為了使事情變得更簡單,并為我們的選項名稱提供了基本的命名空間,我們將在此類的頂部添加另一個私人變量。將此摘要放在Outed_notice_admin類的頂部。
從現(xiàn)在開始,我們將將此值預先為與我們的選項相關(guān)的任何事物。
><span>$this->loader->add_action( 'admin_menu', $plugin_admin, 'add_options_page' );</span>接下來是實際注冊“設置”部分,設置字段和各個設置。再次打開OUTED_NOTICE_ADMIN類,然后添加公共方法寄存器。
注冊設置部分
<span>$this->loader->add_action( 'admin_init', $plugin_admin, 'register_setting' );</span>>在public Register_setting方法中,我們將注冊設置部分。我不會對各種功能和API進行太多的研究,因為法典已經(jīng)提供了足夠的信息來開始。由于我們的插件設置相對簡單,我們將僅注冊一個部分。
這個片段將允許我們使用add_settings_section函數(shù)為我們的選項頁面注冊一個“常規(guī)”部分。
<span>/** </span><span> * Add an options page under the Settings submenu </span><span> * </span><span> * <span>@since 1.0.0 </span></span><span> */ </span> <span>public function add_options_page() { </span> <span>$this->plugin_screen_hook_suffix = add_options_page( </span> <span>__( 'Outdated Notice Settings', 'outdated-notice' ), </span> <span>__( 'Outdated Notice', 'outdated-notice' ), </span> <span>'manage_options', </span> <span>$this->plugin_name, </span> <span>array( $this, 'display_options_page' ) </span> <span>); </span> <span>}</span>
請注意,我們正在用變量$ option_name預列出我們的部分名稱,以防止與其他插件發(fā)生沖突?;卣{(diào)可用于提供有關(guān)我們部分的其他信息,這正是我們想要的。
>我們將添加另一種公共方法,Outdated_notice_general_cb,該方法將呼應有關(guān)本節(jié)的基本信息。
<span>/** </span><span> * Render the options page for plugin </span><span> * </span><span> * <span>@since 1.0.0 </span></span><span> */ </span> <span>public function display_options_page() { </span> <span>include_once 'partials/outdated-notice-admin-display.php'; </span> <span>}</span>注冊兩個設置字段(閾值天數(shù)和文本位置)
我們需要使用的設置API的下一部分是在選項頁面上注冊要渲染的實際字段。可以使用add_settings_field函數(shù)來實現(xiàn)這一點。
>我們將使用無線電按鈕進行文本位置配置。這是通過將此代碼添加到我們擁有的register_setting函數(shù)中來完成的。
>我們需要確保Add_settings_field的第五個參數(shù)將指向我們之前注冊的正確設置部分,否則我們可能在我們的選項頁面上看不到字段。
<span>$this->loader->add_action( 'admin_menu', $plugin_admin, 'add_options_page' );</span>>這還尚未完成。我們需要提供回調(diào)功能,以呈現(xiàn)我們的無線電按鈕的實際標記。在我們的OUTED_NOTICE_POINTION_CB函數(shù)中,我們需要包括此代碼塊:
可以使用普通文本輸入來配置一天閾值的第二個選項。因此,我們將注冊另一個設置字段:
<span>$this->loader->add_action( 'admin_init', $plugin_admin, 'register_setting' );</span>>再次,我們還需要提供一個回調(diào)函數(shù),該函數(shù)將呈現(xiàn)我們的文本字段。
注冊設置
<span>/** </span><span> * The options name to be used in this plugin </span><span> * </span><span> * <span>@since 1.0.0 </span></span><span> * <span>@access private </span></span><span> * <span>@var <span>string</span> $option_name Option name of this plugin </span></span><span> */ </span> <span>private $option_name = 'outdated_notice';</span>最后,我們需要注冊要使用的選項名稱,以便可以在WordPress中識別。由于我們使用了兩個不同的選項名稱,即OUTED_NOTICE_POINTION和OUTED_NOTICE_DAY,因此我們將使用register_setting函數(shù)進行注冊。
<span>// Add a General section </span> <span>add_settings_section( </span> <span>$this->option_name . '_general', </span> <span>__( 'General', 'outdated-notice' ), </span> <span>array( $this, $this->option_name . '_general_cb' ), </span> <span>$this->plugin_name </span> <span>);</span>請注意,寄存器_setting函數(shù)的第三個參數(shù)是消毒回調(diào)。盡管它是可選的,但要確保在保存到數(shù)據(jù)庫之前對輸入值進行消毒總是很有用的。
對于日期消費,我們將使用內(nèi)置的PHP功能,即在我們的情況下足夠。至于文本通知位置,我們將定義我們自己的消毒回調(diào)函數(shù),這將僅允許將某些值保存到數(shù)據(jù)庫中。當處理僅限于特定值的選項時,這一點特別有用,例如在這種情況下,我們只接受兩個值之前和之后的值,因此我們的消毒回調(diào)將需要確保,如果值不是一個值這些,它不會被保存到數(shù)據(jù)庫中。
這是一個簡單的消毒回調(diào)函數(shù),可以實現(xiàn)這一目標: >現(xiàn)在我們需要確保正確的頁面渲染器。由于我們正在使用WordPress的方式注冊我們的字段和設置,因此此任務特別簡單。 >打開admin/partials文件夾內(nèi)的過時的notice-admin-display.php。 以下是我們可以根據(jù)我們之前注冊的設置渲染選項頁面的方式。
>
>這意味著我們的表單正常工作,因此唯一需要完成的操作是在文本字段中顯示當前值,并確保選中正確的廣播按鈕。
這是回調(diào)的更新片段。
這絕不是完整的。我們始終可以改善此插件的管理功能。我能想到的一些事情是: i18n(國際化)準備就緒 - 盡管我們在插件中廣泛使用__()和_e(),但我們并沒有真正完成實際的I18N過程。我不會在此處介紹此過程,因為該主題已經(jīng)在SitePoint上進行了廣泛討論,例如在本文中。
>我們通過注冊相關(guān)設置創(chuàng)建了一個帶有基本管理功能的插件,并為用戶創(chuàng)建一個選項頁面以自定義我們的插件。在使用WordPress插件樣板的時間相對較短的時間內(nèi),我們實現(xiàn)了這一目標而不損害代碼質(zhì)量,但仍按照WordPress建議的最佳實踐。
> > WordPress插件樣板,您可以在包含目錄中創(chuàng)建新類。這些類應擴展樣板提供的基類。然后,您可以將自己的方法添加到這些類中以實現(xiàn)所需的功能。您還可以根據(jù)需要修改現(xiàn)有的類和方法。 以將管理特定功能添加到插件中,您可以使用WordPress插入式Blookin Boblelplate的管理目錄中提供的類和方法。該目錄包括用于創(chuàng)建管理頁面,添加設置字段和處理表單提交的類。 以將公共面向公共功能添加到您的插件,您可以使用WordPress插件樣板的公共目錄中提供的類和方法。該目錄包括用于啟動腳本和樣式的類,以及顯示面向公眾的內(nèi)容。 > 用于處理AJAX請求。這些類包括用于注冊AJAX操作,處理AJAX請求和發(fā)送AJAX響應的方法。<span>/**
</span><span> * Add an options page under the Settings submenu
</span><span> *
</span><span> * <span>@since 1.0.0
</span></span><span> */
</span> <span>public function add_options_page() {
</span>
<span>$this->plugin_screen_hook_suffix = add_options_page(
</span> <span>__( 'Outdated Notice Settings', 'outdated-notice' ),
</span> <span>__( 'Outdated Notice', 'outdated-notice' ),
</span> <span>'manage_options',
</span> <span>$this->plugin_name,
</span> <span>array( $this, 'display_options_page' )
</span> <span>);
</span>
<span>}</span>
填充選項頁面
在注冊所有相關(guān)設置之后,<span>/**
</span><span> * Render the options page for plugin
</span><span> *
</span><span> * <span>@since 1.0.0
</span></span><span> */
</span> <span>public function display_options_page() {
</span> <span>include_once 'partials/outdated-notice-admin-display.php';
</span> <span>}</span>
>與do_settings_sections and settings_fields功能的簡單組合,您的選項頁面完全可以立即完成。保存并重新填充字段
>
>嘗試填充一些值并保存表單。您應該收到“保存設置”的通知。但是沒有發(fā)生。讓我們嘗試對我們的兩個選項進行var_dump。將其放在相關(guān)功能中。<span>$this->loader->add_action( 'admin_menu', $plugin_admin, 'add_options_page' );</span>
<span>$this->loader->add_action( 'admin_init', $plugin_admin, 'register_setting' );</span>
>
<span>/**
</span><span> * The options name to be used in this plugin
</span><span> *
</span><span> * <span>@since 1.0.0
</span></span><span> * <span>@access private
</span></span><span> * <span>@var <span>string</span> $option_name Option name of this plugin
</span></span><span> */
</span> <span>private $option_name = 'outdated_notice';</span>
代碼清理 - WordPress插件樣板具有許多有用的功能,但是在我們的情況下,管理方面,CSS和JS加載是完全不必要的。我們隨時可以從我們的代碼庫中刪除它。
結(jié)論
> WordPress插件樣板是什么,為什么要使用它?它提供了一個易于理解和使用的清晰,一致的結(jié)構(gòu)。使用此樣板可以為您節(jié)省大量的時間和精力來設置插件的基本結(jié)構(gòu)。它還可以確保您的插件遵循WordPress編碼標準和最佳實踐,這可以幫助防止錯誤和兼容性問題。>
>我如何開始使用WordPress plugin Boilerplate?使用WordPress插件樣板,您首先需要從其GitHub存儲庫下載它。下載后,您可以重命名樣板的目錄和文件以匹配插件的名稱。然后,您可以通過在樣板的現(xiàn)有結(jié)構(gòu)中添加自己的自定義功能來開始開發(fā)插件。>如何處理WordPress插件樣板中的插件設置?
>如何在插件中添加Admin特定功能?
>如何將面向公共的功能添加到我的插件中?
如何使用WordPress插入式插件國際化我的插件?
>
>在使用WordPress plubin Boblein blogin blogin Plate時,我如何調(diào)試我的插件?插件樣板可以通過多種方式完成。一種常見的方法是在wp-config.php文件中使用wp_debug常數(shù)。這將顯示PHP錯誤,通知和警告。您還可以使用可用于WordPress的各種調(diào)試插件,也可以使用PHP的內(nèi)置錯誤記錄功能。
以上是WordPress插件樣板第2部分:開發(fā)插件的詳細內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

WordPress導致服務器CPU使用率飆升的主要原因包括插件問題、數(shù)據(jù)庫查詢效率低、主題代碼質(zhì)量差或流量激增。1.首先通過top、htop或控制面板工具確認是否為WordPress引起的高負載;2.進入故障排查模式逐步啟用插件排查性能瓶頸,使用QueryMonitor分析插件執(zhí)行情況并刪除或替換低效插件;3.安裝緩存插件、清理冗余數(shù)據(jù)、分析慢查詢?nèi)罩疽詢?yōu)化數(shù)據(jù)庫;4.檢查主題是否存在過度加載內(nèi)容、復雜查詢或缺乏緩存機制等問題,建議用標準主題測試對比并優(yōu)化代碼邏輯。按照上述步驟逐一排查可定位并解

MinifyingJavaScript文件可通過刪除空白、注釋和無用代碼來提升WordPress網(wǎng)站加載速度。1.使用支持合并壓縮的緩存插件如W3TotalCache,在“Minify”選項中啟用并選擇壓縮模式;2.使用專用壓縮插件如FastVelocityMinify,提供更精細控制;3.手動壓縮JS文件并通過FTP上傳,適用于熟悉開發(fā)工具的用戶。注意部分主題或插件腳本可能與壓縮功能沖突,啟用后需徹底測試網(wǎng)站功能。

優(yōu)化WordPress站點不依賴插件的方法包括:1.使用輕量級主題,如Astra或GeneratePress,避免功能堆砌的主題;2.手動壓縮和合并CSS、JS文件,減少HTTP請求;3.上傳前優(yōu)化圖片,使用WebP格式并控制文件大小;4.配置.htaccess啟用瀏覽器緩存,并接入CDN提升靜態(tài)資源加載速度;5.限制文章修訂版本并定期清理數(shù)據(jù)庫冗余數(shù)據(jù)。

PluginCheck是一個幫助WordPress用戶快速檢查插件兼容性和性能的工具,主要用來識別當前安裝的插件是否存在與最新版本W(wǎng)ordPress不兼容、存在安全漏洞等問題。1.如何開始檢查?安裝激活后,在后臺點擊“RunaScan”按鈕即可自動掃描所有插件;2.報告包含插件名稱、檢測類型、問題描述及解決方案建議,便于優(yōu)先處理嚴重問題;3.建議在更新WordPress前、網(wǎng)站異常時或定期運行檢查,提前發(fā)現(xiàn)隱患,避免未來出現(xiàn)重大問題。

TransientsAPI是WordPress中用于臨時存儲可自動過期數(shù)據(jù)的內(nèi)置工具,其核心函數(shù)為set_transient、get_transient和delete_transient。相比OptionsAPI,transients支持設置生存時間(TTL),適合緩存API請求結(jié)果、復雜計算數(shù)據(jù)等場景。使用時需注意key命名唯一性與命名空間、緩存“懶刪除”機制及對象緩存環(huán)境下可能不持久的問題。典型應用場景包括減少外部請求頻率、控制代碼執(zhí)行節(jié)奏和提升頁面加載性能。

防止評論垃圾信息最有效的方式是通過程序化手段自動識別并攔截。1.使用驗證碼機制(如GooglereCAPTCHA或hCaptcha)可有效區(qū)分人類與機器人,尤其適合公眾網(wǎng)站;2.設置隱藏字段(Honeypot技術(shù)),利用機器人自動填寫特性識別垃圾評論,不影響用戶體驗;3.檢查評論內(nèi)容關(guān)鍵詞黑名單,通過敏感詞匹配過濾垃圾信息,需注意避免誤判;4.判斷評論頻率與來源IP,限制單位時間內(nèi)的提交次數(shù)并建立黑名單;5.使用第三方反垃圾服務(如Akismet、Cloudflare)提升識別準確性??筛鶕?jù)網(wǎng)站

在開發(fā)Gutenberg塊時,正確enqueue資產(chǎn)的方法包括:1.使用register_block_type指定editor_script、editor_style和style的路徑;2.在functions.php或插件中通過wp_register_script和wp_register_style注冊資源,并設置正確的依賴和版本;3.配置構(gòu)建工具輸出合適的模塊格式,并確保路徑一致;4.通過add_theme_support或enqueue_block_assets控制前端樣式的加載邏輯,確保

要添加自定義用戶字段需根據(jù)平臺選擇擴展方式并注意數(shù)據(jù)驗證與權(quán)限控制。常見做法包括:1.利用數(shù)據(jù)庫額外表或鍵值對結(jié)構(gòu)存儲信息;2.在前端加入輸入框并與后端集成;3.對敏感數(shù)據(jù)進行格式校驗和訪問權(quán)限限制;4.更新接口及模板以支持新字段展示與編輯,同時兼顧移動端適配和用戶體驗。
