如果您使用 WordPress 謀生並講述您的故事,那麼看到您編寫的更改添加到 WordPress 程式碼庫(kù)中是一件非常令人興奮的事情。我知道這是給我的。
在本教學(xué)中,您將學(xué)習(xí)創(chuàng)建可被核心軟體接受的 WordPress 修補(bǔ)程式所需了解的一些簡(jiǎn)單知識(shí)。
雖然 WordPress 是任何人都可以下載和修改的開源軟體,但只有少數(shù)核心貢獻(xiàn)者能夠?qū)⑺麄兊淖兏峤坏?WordPress 本身。如果您想對(duì) WordPress 的核心文件進(jìn)行更改,您可以透過(guò)建立詳細(xì)說(shuō)明提議的更改並附加補(bǔ)丁的票證或?qū)⒀a(bǔ)丁附加到現(xiàn)有票證來(lái)提出建議。
補(bǔ)丁或 diff 文件是一個(gè)詳細(xì)說(shuō)明您對(duì)原始程式碼所做的更改的文件,SVN 或 GIT 等版本控制系統(tǒng)可以使用該文件來(lái)應(yīng)用您的更改。透過(guò)命令列或透過(guò) SourceTree 等 GUI 工具可以輕鬆建立補(bǔ)丁。
在本文中,我將詳細(xì)介紹如何使用優(yōu)秀的 GIT GUI 應(yīng)用程式 SourceTree 來(lái)檢查最新版本的 WordPress 並建立補(bǔ)丁檔案。如果您願(yuàn)意,可以使用您選擇的 GUI 工具或命令列。
在 Core Trac 中尋找或建立票證
當(dāng)您將補(bǔ)丁提交到 WordPress 核心時(shí),它必須附加到 WordPress 問(wèn)題追蹤器(稱為 trac)中的票證中。因此,提交補(bǔ)丁的第一步是尋找或建立票證。
雖然具有新功能的新票證有可能被接受,但可能性不大。 WordPress 擁有數(shù)百萬(wàn)用戶,主要開發(fā)人員對(duì)於引入新功能非常謹(jǐn)慎是有道理的?,F(xiàn)在幾乎所有新功能都首先作為插件單獨(dú)開發(fā),只有經(jīng)過(guò)廣泛的測(cè)試和開發(fā)後才合併到核心中。
要讓補(bǔ)丁被接受,最好的方法是為現(xiàn)有票證建立補(bǔ)丁。最近,核心 trac 進(jìn)行了重新設(shè)計(jì),以便更輕鬆地找到具有簡(jiǎn)單修復(fù)的票證以及最有可能包含在下一版本和下一版本 WordPress 中的票證。
報(bào)告錯(cuò)誤
如果您想在 core trac 中建立新票證(如果您發(fā)現(xiàn)了新錯(cuò)誤,這是一件很棒的事情),您可以在此處執(zhí)行此操作。只需確保您在建立新票證之前已在 trac 中搜尋了同一問(wèn)題的任何報(bào)告,並且已驗(yàn)證最新版本的 WordPress 中是否存在該錯(cuò)誤。
我指的並不是最新版本,而是 GIT 術(shù)語(yǔ)中的 master 分支或 SVN 術(shù)語(yǔ)中的 trunk。我將在本教學(xué)稍後詳細(xì)介紹如何取得最新版本。
#您至少必須填寫摘要欄位(工單的標(biāo)題)和描述字段,這是票證的內(nèi)容。在票證描述中,請(qǐng)盡可能具有描述性。
在我參加的 2013 年 WordCamp 奧蘭多貢獻(xiàn)者研討會(huì)上,WordPress 首席開發(fā)人員 Mark Jaquith 和 Andrew Nacin 創(chuàng)建了這份優(yōu)秀錯(cuò)誤報(bào)告的清單:
- 重現(xiàn)問(wèn)題的步驟(從最早的步驟開始)
- 錯(cuò)誤描述
- 您所看到的與您所期望的
- 錯(cuò)誤訊息或錯(cuò)誤代碼
- PHP 錯(cuò)誤(頁(yè)面上的警告是什麼、日誌中出現(xiàn)了什麼內(nèi)容、是否有任何 JavaScript 或 Apache/nginx 錯(cuò)誤?)
- 什麼瀏覽器?
- 環(huán)境(您的 PHP 版本、MySQL Apache 或 nginx 版本)
- 在沒(méi)有外掛程式和預(yù)設(shè)主題的情況下會(huì)發(fā)生這種情況嗎?
- 使用者介面問(wèn)題的螢?zāi)唤貓D
- 清晰簡(jiǎn)潔
- 先切入主題,然後再詳細(xì)說(shuō)明。
- 相關(guān)票號(hào)
- 每張票一個(gè)錯(cuò)誤
- 固定連結(jié)設(shè)定
- 是否啟用多站點(diǎn)?
- WP_DEBUG 或同等功能已啟用?
- 問(wèn)題發(fā)生時(shí)登入的使用者角色(或更改資料庫(kù)中的角色)
請(qǐng)記住,並非所有這些都與每個(gè)錯(cuò)誤相關(guān),但您可以添加更多相關(guān)信息,效果更好。
除非您確定要在其中設(shè)定什麼內(nèi)容,否則您應(yīng)該保留下面描述的字段,讓核心貢獻(xiàn)者使用它們對(duì)工單進(jìn)行相應(yīng)的分類。我建議您根據(jù)是否附加補(bǔ)丁來(lái)修復(fù)錯(cuò)誤而使用“Has Patch”或“Needs Patch”標(biāo)籤。
使用 GUI 工具從 GitHub 查看最新的 WordPress
在為任何票證建立補(bǔ)丁之前,擁有絕對(duì)最新版本的 WordPress 非常重要,因?yàn)槊刻於紩?huì)對(duì)其進(jìn)行許多更改。除非您使用最新的程式碼,否則不可能知道您的修復(fù)是否有效或錯(cuò)誤是否仍然存在。如果您的補(bǔ)丁修改了已經(jīng)更改的程式碼,則它可能不會(huì)被接受。
WordPress 在 SVN 中管理,但程式碼在兩個(gè)位置鏡像為 GIT 儲(chǔ)存庫(kù):
git://core.git.wordpress.org/
- #https://github.com/WordPress/WordPress
#GitHub 儲(chǔ)存庫(kù)是最容易使用的。請(qǐng)記住,即使它是官方 GitHub 儲(chǔ)存庫(kù),它仍然不用於問(wèn)題跟蹤,並且您不應(yīng)向其提交拉取請(qǐng)求。
有多種方法可以透過(guò) SVN 或 Git 取得最新版本的 WordPress。就我個(gè)人而言,我發(fā)現(xiàn)最簡(jiǎn)單的方法是使用出色的 GIT GUI 工具 SourceTree 來(lái)複製 GitHub 鏡像。這就像從檔案選單中選擇「新建/複製」一樣簡(jiǎn)單,在「來(lái)源路徑/ URL」欄位中輸??入Git 儲(chǔ)存庫(kù)的位址,然後指定用於複製的本機(jī)路徑,該路徑位於您的XAMMP 或Vagrant 內(nèi)部測(cè)試環(huán)境。
說(shuō)到 Vagrant,受歡迎的 WordPress Vagrant 設(shè)定 VVV 已經(jīng)為 WordPress 核心預(yù)先設(shè)定了測(cè)試環(huán)境,包括最新程式碼和單元測(cè)試。
建立補(bǔ)丁檔案
對(duì) WordPress 進(jìn)行了解決您嘗試修復(fù)的問(wèn)題所需的變更並測(cè)試了修復(fù)後,您需要建立一個(gè)補(bǔ)丁檔案以上傳到工單。 SourceTree 包含一種建立補(bǔ)丁檔案的方法,或者您也可以使用命令列。
在 SourceTree 中,您可以透過(guò)前往工作副本並右鍵單擊已更改的檔案來(lái)建立補(bǔ)丁檔案。從右鍵選單中選擇“建立補(bǔ)丁”。
或者,在終端機(jī)中導(dǎo)航到 WordPress 儲(chǔ)存庫(kù)的根目錄,然後使用以下命令建立差異:
git diff —非前綴 ~/name.path
#無(wú)論您如何建立補(bǔ)丁文件,都應(yīng)該以它的目標(biāo)票號(hào)來(lái)命名它。如果這是上傳到票證的第二個(gè)補(bǔ)丁,請(qǐng)?jiān)跀?shù)字末尾附加 .2,如果是第三個(gè),則附加 .3,依此類推。例如,票號(hào) #12358 的第五個(gè)補(bǔ)丁將被稱為 #12358.5
將補(bǔ)丁上傳到 Trac
現(xiàn)在您的補(bǔ)丁已準(zhǔn)備就緒,您需要將其上傳到 core trac 中的票證中。在任何現(xiàn)有的票證上,說(shuō)明下方都有一個(gè)「附加檔案」按鈕,您可以使用該按鈕上傳補(bǔ)丁。在下一個(gè)畫面上,請(qǐng)務(wù)必新增補(bǔ)丁功能的描述。
要有耐心並理解
WordPress 是一個(gè)龐大的項(xiàng)目,因此期望您的補(bǔ)丁立即得到回應(yīng)是不合理的。另外,請(qǐng)了解,提交給 WordPress 的補(bǔ)丁的標(biāo)準(zhǔn)必須非常高,才能最好地服務(wù)所有使用者。
提交補(bǔ)丁後,請(qǐng)保持耐心並理解您收到的任何回饋。主要開發(fā)人員非常平易近人,如果您對(duì)補(bǔ)丁有疑問(wèn)或?yàn)槭颤N沒(méi)有改進(jìn),請(qǐng)隨時(shí)在 #wordpress-dev IRC 頻道中詢問(wèn)其中一位。
雖然等待回應(yīng)並必須進(jìn)行更改可能會(huì)令人沮喪,但當(dāng)您的補(bǔ)丁已提交到 WordPress 並且變更集描述認(rèn)可您時(shí),這是值得的。
以上是向 WordPress 核心提交補(bǔ)丁:建立和共享變更的過(guò)程的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

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

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

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

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

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

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

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

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

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

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

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

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