WordPress 插件開發(fā)入門指南:使用 WordPress 插件樣板
WordPress 插件開發(fā)的學(xué)習(xí)曲線較低,并沒有構(gòu)建插件的唯一方法。插件可以像 Hello Dolly 一樣簡單,只是一個單文件;也可以根據(jù)各種需求和功能構(gòu)建得非常復(fù)雜。WordPress 插件樣板旨在提供一個標(biāo)準(zhǔn)化、高質(zhì)量的基礎(chǔ),幫助您構(gòu)建下一個優(yōu)秀的插件。在本系列的第一部分中,我們將深入探討該樣板,包括文件和文件夾的結(jié)構(gòu)以及樣板的代碼組織。
關(guān)鍵要點
- WordPress 插件樣板為構(gòu)建 WordPress 插件提供了標(biāo)準(zhǔn)化、高質(zhì)量的基礎(chǔ),學(xué)習(xí)曲線低,并且可以靈活地用于簡單或復(fù)雜的插件結(jié)構(gòu)。
- 樣板的 3.0.0 版本在代碼組織和插件內(nèi)部關(guān)注點的分離方面帶來了重大改進,可以通過克隆 git 倉庫或從 GitHub 倉庫下載 zip 文件輕松獲取。
- 樣板遵循推薦的 WordPress 編碼和文檔標(biāo)準(zhǔn),提供有用的入門指南和工具推薦,并包含五個用于各種功能的默認(rèn)類,使其成為插件開發(fā)人員的絕佳起點。
背景
WordPress 插件樣板最初是由 Tom McFarlin 發(fā)起的,旨在提供一種標(biāo)準(zhǔn)化的面向?qū)ο蠓椒▉順?gòu)建 WordPress 插件。由于樣板構(gòu)建在插件 API 之上,并遵循 WordPress 推薦的編碼標(biāo)準(zhǔn)和文檔標(biāo)準(zhǔn),因此您可以確信自己處于安全可靠的環(huán)境中。樣板最近更新到 3.0.0 版本,在代碼組織以及插件內(nèi)部關(guān)注點的進一步分離方面帶來了重大改進。如果您已經(jīng)熟悉使用舊版樣板 (v2.6.2) 開發(fā)插件,則可能需要一些時間來重新學(xué)習(xí)最新版本中的新增內(nèi)容,其中包括新的文件夾結(jié)構(gòu)。此樣板不再由 Tom McFarlin 本人維護(在撰寫本文時),他已經(jīng)將接力棒傳給了 Devin Vinson。開發(fā)仍在按計劃繼續(xù)進行,因此如果您有任何問題,請隨時在 GitHub 倉庫中報告。我們也歡迎您的貢獻。
獲取樣板副本
獲取 WordPress 插件樣板副本最簡單的方法是克隆 git 倉庫本身。
<code>git clone https://github.com/DevinVinson/WordPress-Plugin-Boilerplate.git</code>
或者您可以始終從 GitHub 倉庫下載 zip 文件。由于 3.0.0 版本已發(fā)布,因此不能簡單地將插件直接復(fù)制到您的 wp-content/plugins 目錄中。這是因為插件的實際源代碼不包含在根目錄中,而實際上位于名為 trunk 的子目錄中?,F(xiàn)在不用擔(dān)心這個問題,我們稍后將在本文中討論新的文件夾結(jié)構(gòu)。README.md 文件中詳細介紹了如何正確安裝樣板的完整說明。簡而言之,您可以:
- 將 trunk 目錄復(fù)制到 wp-content/plugins 文件夾
- 復(fù)制整個樣板目錄,然后為 trunk 子目錄創(chuàng)建到 wp-content/plugins/
/ 的符號鏈接。創(chuàng)建符號鏈接將取決于您使用的操作系統(tǒng)。
完成此操作后,您現(xiàn)在應(yīng)該在管理面板的插件列表中找到一個名為 WordPress Plugin Boilerplate 的插件,假設(shè)您沒有對樣板本身進行任何修改。只需激活插件即可開始使用!
使用在線生成器自定義插件
激活后,您將擁有一個基本上不執(zhí)行任何操作的“普通”插件——至少目前是這樣。您還需要對整個樣板的代碼庫運行搜索和替換操作,此過程可能非常繁瑣且耗時。幸運的是,Enrique Chavez 創(chuàng)建了一個非官方生成器,可以自動化此過程。只需訪問 http://www.miracleart.cn/link/6340831392e9cd8af9598274f4b3c5c0 并填寫頁面底部的表單即可生成個性化的 WordPress 插件樣板副本。
文件夾結(jié)構(gòu)
讓我們更仔細地看看與舊版本相比,WordPress 插件樣板 3.0.0 版本是如何組織的。如前所述,實際的插件代碼包含在一個名為 trunk 的子目錄中,而不是根目錄中。這是為了遵循 WordPress 官方插件存儲庫中使用的標(biāo)準(zhǔn),該存儲庫包含三個主要目錄:assets、branches 和 trunk。樣板已經(jīng)提供了其中的兩個:assets 和 trunk。以下是樣板中包含的完整目錄和文件(在撰寫本文時):
<code>git clone https://github.com/DevinVinson/WordPress-Plugin-Boilerplate.git</code>
以下是每個文件和文件夾的功能簡要說明:
-
.gitignore
:為大多數(shù)不應(yīng)存在于 git 存儲庫中的內(nèi)容提供合理的默認(rèn).gitignore
。 -
CHANGELOG.md
:樣板更改的標(biāo)準(zhǔn)變更日志,包含更改日期。 -
README.md
:一個有用的入門指南,其中列出了安裝說明,以及其他一些部分,例如工具推薦和鳴謝。 -
assets
:此目錄包含在您決定將插件發(fā)布到 WordPress 插件存儲庫時需要提供的推薦資源。此目錄中包含的所有圖像均為發(fā)布的推薦分辨率。 -
trunk
:這是您將要開發(fā)的實際插件。有一些文件夾將代碼庫分為管理和面向公眾的功能。我們將詳細介紹每個子目錄的含義。-
admin
:admin
目錄中包含三個目錄,即css
、js
和partials
。顧名思義,所有面向管理的功能都應(yīng)放在此處。默認(rèn)情況下,plugin-name-admin.js
和plugin-name-admin.css
將添加到您的 wp-admin 中。class-plugin-name-admin.php
將提供通用功能,您可以在其中定義特定于管理的掛鉤。 -
public
:此目錄與admin
目錄提供的功能非常相似,唯一的區(qū)別是public
目錄應(yīng)用于存儲所有面向公眾的功能代碼庫。 -
languages
:一個起始.pot
文件,您可以在其中為插件提供翻譯功能。 -
includes
:這可能是幾乎所有神奇之處發(fā)生的地方。默認(rèn)情況下包含五個起始類,我們將在下一節(jié)中討論。 -
LICENSE.txt
:默認(rèn)情況下包含 GPL v2 許可證的副本。 -
README.txt
:插件 README 文件的起點。此文件涵蓋了您可以進一步填寫以在 WordPress 插件存儲庫中提供良好的插件頁面的所有部分。 -
plugin-name.php
:插件的入口點。在此處,包含一個通用的插件文件頭,您可以根據(jù)自己的喜好進行修改。如果您需要在插件激活和/或停用時包含某種功能,則還會在此文件中注冊register_activation_hook
和register_deactivation_hook
。
-
包含的類
如前所述,trunk/includes
目錄中提供了五個默認(rèn)類。讓我們看看每個類都做什么:
-
class-plugin-name-activator.php
:此類在插件激活期間實例化。它只有一個靜態(tài)方法activate()
,該方法注冊到register_activation_hook
。每當(dāng)您需要在插件激活時執(zhí)行某些操作(例如創(chuàng)建自定義表或保存默認(rèn)選項)時,請使用此類。 -
class-plugin-name-deactivator.php
:class-plugin-name-deactivator.php
的對應(yīng)類。它也只有一個靜態(tài)方法deactivate()
,可用于在插件停用期間運行任何功能。 -
class-plugin-name-i18n.php
:插件 i18n 功能的起點。它有一個屬性$domain
,用于存儲插件文本域??梢允褂霉卜椒?set_domain()
設(shè)置此屬性。最后,每當(dāng)加載插件時,都會調(diào)用此類中的load_plugin_textdomain()
方法。 -
class-plugin-name-loader.php
:樣板中可能最重要的類。它包含兩個屬性$actions
和$filters
,所有在插件中注冊的掛鉤都將存儲在此處。它提供兩個簡單的包裝函數(shù)add_action()
和add_filter()
,用于將操作或過濾器添加到$actions
和$filters
屬性中。這不要與 WordPress 默認(rèn)的add_action()
和add_filter()
函數(shù)混淆,因為此類實際上并沒有直接注冊它們。所有掛鉤都只會在另一個名為run()
的方法期間注冊。 -
class-plugin-name.php
:將所有部分粘合在一起的類。它包含有關(guān)插件的重要信息,例如插件名稱和版本。此外,它將使用load_dependencies()
方法加載依賴項,這將包含以上四個類,并且將使用set_locale()
方法設(shè)置插件文本域。之前注冊的所有管理和公共掛鉤也可以在此處定義。此類還提供簡單的 get 方法,例如get_plugin_name()
用于返回插件名稱,get_version()
用于返回當(dāng)前插件版本,以及get_loader()
用于保留class-plugin-name-loader.php
的實例。
結(jié)論
簡而言之,WordPress 插件樣板為插件開發(fā)人員提供了一個絕佳的起點。它遵循推薦的 WordPress 編碼標(biāo)準(zhǔn)以及 WordPress 文檔標(biāo)準(zhǔn),因此您知道自己從一開始就走在了正確的道路上。此外,由于樣板已經(jīng)提供了您所需的大部分內(nèi)容,因此發(fā)布到 WordPress 插件存儲庫變得更加容易。一旦我們熟悉了代碼組織和文件夾結(jié)構(gòu),我們將在本系列的第二部分中探討如何使用 WordPress 插件樣板開發(fā)實際插件。
以上是使用WordPress插件樣板加快開發(fā)的詳細內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應(yīng)用程序,用于創(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)

使用Git管理WordPress項目時,應(yīng)只將主題、自定義插件和配置文件納入版本控制;設(shè)置.gitignore文件以忽略上傳目錄、緩存和敏感配置;利用webhook或CI工具實現(xiàn)自動部署并注意數(shù)據(jù)庫處理;采用兩分支策略(main/develop)進行協(xié)作開發(fā)。這樣做可避免沖突、保障安全,并提升協(xié)作與部署效率。

創(chuàng)建Gutenberg塊的關(guān)鍵在于理解其基本結(jié)構(gòu)并正確連接前后端資源。1.準(zhǔn)備開發(fā)環(huán)境:安裝本地WordPress、Node.js和@wordpress/scripts;2.使用PHP注冊塊并用JavaScript定義塊的編輯和顯示邏輯;3.通過npm構(gòu)建JS文件以使更改生效;4.遇到問題時檢查路徑、圖標(biāo)是否正確或使用實時監(jiān)聽構(gòu)建避免重復(fù)手動編譯。按照這些步驟,可以逐步實現(xiàn)一個簡單的Gutenberg塊。

使用WordPress測試環(huán)境是為了確保新功能、插件或主題在正式上線前的安全性和兼容性,避免影響真實網(wǎng)站。搭建測試環(huán)境的步驟包括:下載安裝本地服務(wù)器軟件(如LocalWP、XAMPP),創(chuàng)建站點、設(shè)置數(shù)據(jù)庫和管理員賬號,安裝主題和插件進行測試;復(fù)制正式網(wǎng)站到測試環(huán)境的方法是通過插件導(dǎo)出站點、導(dǎo)入測試環(huán)境并替換域名;使用時應(yīng)注意不使用真實用戶數(shù)據(jù)、定期清理無用數(shù)據(jù)、備份測試狀態(tài)、適時重置環(huán)境,并統(tǒng)一團隊配置以減少差異問題。

在WordPress中,當(dāng)新增自定義文章類型或修改固定鏈接結(jié)構(gòu)后,需手動刷新重寫規(guī)則,此時可通過代碼調(diào)用flush_rewrite_rules()函數(shù)實現(xiàn)。1.可在主題或插件激活鉤子中添加該函數(shù)以自動刷新;2.僅在必要時執(zhí)行一次,如添加CPT、分類法或修改鏈接結(jié)構(gòu)后;3.避免頻繁調(diào)用以免影響性能;4.多站點環(huán)境下需視情況為每個站點單獨刷新;5.某些托管環(huán)境可能限制規(guī)則保存。此外,訪問“設(shè)置>固定鏈接”頁面點擊保存也可觸發(fā)刷新,適合非自動化場景。

tosetupredirectsinwordpressingthe.htaccessfile,locateThEfileInyourSite'sRootDirectorectoryAndDrectRectrulesabovethe#beginWordPresssection.forbasic301redirects,USETHEETHEETERECTREFTATRECTATREDERTREFTATREDERTREFTATRECTRECTATRECTRECTATREDECT301/OLD-PAGEHTTPS:

UsingsMtpForWordPresseMailSimProvesDeliverabilitialComparedComparedTothEdeDefaultPhpMail()函數(shù).1.smtpauthenticateswithyouremailserver.2.somemomehostsdisablesablephpmail()

要實現(xiàn)響應(yīng)式WordPress主題設(shè)計,首先要使用HTML5和移動優(yōu)先的Meta標(biāo)簽,在header.php中添加viewport設(shè)置以確保移動端正確顯示,并用HTML5結(jié)構(gòu)標(biāo)簽組織布局;其次,利用CSS媒體查詢實現(xiàn)不同屏幕寬度下的樣式適配,按移動優(yōu)先原則編寫樣式,常用斷點包括480px、768px和1024px;第三,彈性處理圖片和布局,為圖片設(shè)置max-width:100%并使用Flexbox或Grid布局替代固定寬度;最后,通過瀏覽器開發(fā)者工具和真實設(shè)備進行充分測試,優(yōu)化加載性能,確保響應(yīng)

TOINTEGRATETHIRD-PARTYAPISINTOWORDPRESS,關(guān)注臺詞:1.SelectAutableabepianDobtainCredentialslikeapikeYsoroAuthtoKensByEnterRegisteringThemSecure.2.ChooseBeteBetB??eteBetB??eteBetB??etebetInpliCityOorcustimplicityOrcustomPliCoseTompliCoseTomploomcoseusionfunctionfunctionfunctibunitiacuciencipuity forfunigation。
