鑰匙要點(diǎn)
- > WordPress插件樣板系列的第三部分重點(diǎn)是實(shí)現(xiàn)插件的公共面向功能,其中包括檢索用戶首選項(xiàng)并在其單個(gè)帖子視圖上相應(yīng)地顯示通知。 >
- >指南說(shuō)明了如何準(zhǔn)備測(cè)試主題,如何將其連接到the_content過(guò)濾器中,如何有條件地修改內(nèi)容以及如何計(jì)算當(dāng)前時(shí)間和帖子最后修改時(shí)間之間的差異。 還討論了
- 造型通知文本,作者提供了一個(gè)簡(jiǎn)單的樣式指南,以匹配整體主題設(shè)計(jì)。作者還提出了潛在的改進(jìn),例如針對(duì)不同上下文的動(dòng)態(tài)文本和可忽視的通知。 >
- 作者結(jié)束了結(jié)論,突出顯示W(wǎng)ordPress插件樣板的好處,指出其清晰的結(jié)構(gòu),遵守最佳實(shí)踐以及為插件開發(fā)具有可靠的起點(diǎn)的節(jié)省時(shí)間的方面。 在本系列的第二部分中,我們?yōu)椴寮?zhǔn)備了簡(jiǎn)單的管理功能。我們?yōu)橛脩籼峁┝艘粋€(gè)選項(xiàng)頁(yè)面,他們可以根據(jù)他們的首選項(xiàng)調(diào)整插件。
如果您錯(cuò)過(guò)了第1部分和第2部分,請(qǐng)?jiān)谙旅嬲业剿鼈儯?/p>>
> WordPress插件樣板第1部分:使用WordPress插件板
- 加速開發(fā)
- > WordPress插件樣板第2部分:開發(fā)WordPress插件
- 在本文中,我們將實(shí)現(xiàn)插件的公開功能。這意味著我們將檢索用戶的偏好,確定該特定帖子是否過(guò)時(shí),并在其單個(gè)帖子視圖上相應(yīng)地顯示通知。讓我們開始!
我們需要準(zhǔn)備主題,以便以后可以對(duì)其進(jìn)行測(cè)試。我們將使用WordPress默認(rèn)運(yùn)輸?shù)亩鍌€(gè)主題。我們將使用主題審核團(tuán)隊(duì)提供的主題單元測(cè)試數(shù)據(jù)來(lái)填充帖子。
>我們需要下載上述法典頁(yè)面上提供的主題單位test-data.xml,并將其導(dǎo)入我們的WordPress安裝中。 WordPress內(nèi)置的導(dǎo)入功能可以通過(guò)導(dǎo)航到側(cè)欄的工具>導(dǎo)入。
>>我們將提供各種選擇,并且由于我們正在導(dǎo)入WordPress導(dǎo)出文件,因此我們將選擇WordPress。根據(jù)WordPress的安裝,如果我們沒(méi)有安裝WordPress進(jìn)口商插件,將顯示插件彈出窗口。如果您沒(méi)有它,請(qǐng)首先繼續(xù)安裝插件,一旦完成后,我們將繼續(xù)進(jìn)行實(shí)際導(dǎo)入過(guò)程。

這是默認(rèn)的WordPress導(dǎo)入頁(yè)面,因此我們需要選擇先前下載的theme-unit-test-data.xml,然后單擊“上傳文件和導(dǎo)入”按鈕。
然后將顯示第二個(gè)屏幕。不必?fù)?dān)心“分配作者”部分,因?yàn)槲覀兛梢詫⑵渥鳛槟J(rèn)情況。在“導(dǎo)入附件”部分中,請(qǐng)確保勾選復(fù)選框“下載和導(dǎo)入文件附件”,以便將所有外部附件都下載并導(dǎo)入到媒體庫(kù)中。
現(xiàn)在,我們準(zhǔn)備編寫顯示我們通知的代碼。
>
掛接到the_content filter使用the_content過(guò)濾器是更改向用戶顯示的帖子內(nèi)容的完美方法。根據(jù)上一個(gè)教程,我們將將鉤子添加到樣板類加載器中,唯一的區(qū)別是將使用Define_public_hooks方法而不是Define_admin_hooks。
>將此代碼添加到該方法中:
這意味著,我們需要將公共the_content方法實(shí)現(xiàn)到我們的OUTED_NOTICE_PUBLIC類中。打開公共/班級(jí)淘汰 - notice-public.php并進(jìn)行相應(yīng)的修改。
>
有條件修改內(nèi)容<span>$this->loader->add_action( 'the_content', $plugin_public, 'the_content' );</span>
因?yàn)閠he_content過(guò)濾器由各種插件和內(nèi)部WordPress核心使用,所以我們需要謹(jǐn)慎地將我們的自定義內(nèi)容插入其中。
>>我們需要確保只有在顯示單個(gè)帖子而不在博客文章索引上插入過(guò)時(shí)的通知文本。為了做到這一點(diǎn),我們可以使用IS_MAIN_QUERY函數(shù)過(guò)濾它。只要我們需要確定運(yùn)行查詢是主要的還是輔助/自定義查詢。
我們需要考慮的另一件事是,我們將僅顯示帖子類型帖子的單個(gè)視圖的通知文本,因此is_singular('post')驗(yàn)證將非常適合工作。>
這是oftated_notice_public類中包含的更新的the_content方法。
計(jì)算天數(shù)
>在開始之前,讓我們?cè)O(shè)置位置,以使通知顯示為“之前”帖子,而閾值的天數(shù)為30。
首先,我們需要檢索插件的存儲(chǔ)設(shè)置。 get_option函數(shù)將完成這項(xiàng)工作,作為一個(gè)安全的度量,我們將將默認(rèn)值作為第二個(gè)參數(shù)將其傳遞給get_option。<span>$this->loader->add_action( 'the_content', $plugin_public, 'the_content' );</span>
>計(jì)算當(dāng)前時(shí)間和帖子最后修改時(shí)間之間的天數(shù),我們將實(shí)例化兩個(gè)日期對(duì)象。我們可以使用內(nèi)置在DateTime類中的DIFF方法進(jìn)行準(zhǔn)確的時(shí)間差測(cè)量。請(qǐng)注意,DateTime類僅在php> = 5.3.0。
<span>public function the_content( $post_content ) { </span> <span>if ( is_main_query() && is_singular('post') ) { </span> <span>// do something </span> <span>} </span> <span>return $post_content; </span> <span>}</span>$ $ date_diff是dateinterval類的一個(gè)實(shí)例,因此我們將擁有有關(guān)時(shí)間差的一系列數(shù)據(jù)。如果我們要var_dump $ date_diff變量,這是我們應(yīng)該得到的,具體取決于您當(dāng)前正在查看的帖子。
>
<span>$position = get_option( 'outdated_notice_position', 'before' ); </span> <span>$days = (int) get_option( 'outdated_notice_day', 0 );</span>>我們只對(duì)日子價(jià)值感興趣,因?yàn)樗鼘⑴c我們的日期閾值進(jìn)行比較。正如我之前說(shuō)的,我們將比較它們,以便我們可以將特定類應(yīng)用于通知div元素,以在帖子之間以不同的方式進(jìn)行樣式。
<span>$date_now = new DateTime( current_time('mysql') ); </span> <span>$date_old = new DateTime( get_the_modified_time('Y-m-d H:i:s') ); </span> <span>$date_diff = $date_old->diff( $date_now );</span>這個(gè)簡(jiǎn)單的比較塊足以確定用于我們的Div的哪個(gè)類。現(xiàn)在剩下的唯一的是實(shí)際構(gòu)建以添加到帖子內(nèi)容中的HTML。
>為了更好地翻譯現(xiàn)成的文本,我們將使用_n函數(shù)選擇為選擇適當(dāng)?shù)奈谋?,這是根據(jù)帖子上次更新以來(lái)的天數(shù)。然后,我們將以自己的div包裝通知文本,以便以后可以對(duì)其進(jìn)行樣式。請(qǐng)隨時(shí)將通知文本調(diào)整為自己喜歡。
>$通知變量現(xiàn)在應(yīng)包含我們將插入帖子內(nèi)容的標(biāo)記。剩下的唯一要做的就是將其添加。
<span>object(DateInterval)#286 (8) { </span> <span>["y"]=> </span> <span>int(0) </span> <span>["m"]=> </span> <span>int(0) </span> <span>["d"]=> </span> <span>int(12) </span> <span>["h"]=> </span> <span>int(23) </span> <span>["i"]=> </span> <span>int(17) </span> <span>["s"]=> </span> <span>int(22) </span> <span>["invert"]=> </span> <span>int(0) </span> <span>["days"]=> </span> <span>int(12) </span> <span>}</span>>
作為回顧,這就是the_content方法outdated_notice_public最終應(yīng)該看起來(lái)。
<span>if ( $date_diff->days > $days ) { </span> <span>$class = 'is-outdated'; </span> <span>} else { </span> <span>$class = 'is-fresh'; </span> <span>}</span>>
>嘗試瀏覽幾頁(yè),以查看我們的插件是否按預(yù)期工作。這是我在瀏覽url
<span>// Filter the text </span> <span>$notice = sprintf( </span> <span>_n( </span> <span>'This post was last updated %s day ago.', </span> <span>'This post was last updated %s days ago.', </span> <span>$date_diff->days, </span> <span>'outdated-notice' </span> <span>), </span> <span>$date_diff->days </span> <span>); </span> <span>// Add the class </span> <span>$notice = '<div >' . $notice . '</div>'; </span> <span>$notice = sprintf( $notice, $class );</span>
造型通知文本

>
>打開公共/CSS文件夾中包含的過(guò)時(shí)的notice-public.css文件,并添加此規(guī)則。
>我們還需要兩種不同的樣式來(lái)表示后循環(huán),這是.is fresh的一種樣式,另一種是以上的。這個(gè)片段應(yīng)該可以解決問(wèn)題,為我們提供了一個(gè)不錯(cuò)的綠色配色方案,用于新的帖子,紅色配色方案用于過(guò)時(shí)的帖子。
<span>if ( 'after' == $position ) { </span> <span>$post_content .= $notice; </span> <span>} else { </span> <span>$post_content = $notice . $post_content; </span> <span>}</span>>讓我們刷新帖子視圖,看看它的樣式。新鮮和過(guò)時(shí)的帖子的示例:
改進(jìn)
您需要首先從其GitHub存儲(chǔ)庫(kù)下載它。下載后,您可以重命名樣板目錄和文件以匹配插件的細(xì)節(jié)。樣板的代碼被充分發(fā)出,引導(dǎo)您將自定義代碼放置在何處。請(qǐng)記住要更新主插件文件中的插件標(biāo)頭以反映您的插件的詳細(xì)信息。 > wordpress插件樣板的結(jié)構(gòu)是什么? 插件的功能,通常會(huì)在“ Include”目錄中為該功能創(chuàng)建一個(gè)新類。此類應(yīng)定義您的功能需要運(yùn)行的所有掛鉤。然后,在主插件類中實(shí)例化此類,并將其添加到“運(yùn)行”功能中。這種模塊化方法使您可以輕松地添加,刪除或修改插件中的功能。 >如何使用WordPress插件樣板國(guó)際化插件?目錄。此類將加載插件的文本域,從而將其翻譯成其他語(yǔ)言。您只需要用插件的文本域替換樣板中的占位符文本域。 > WordPress Plugin Bobilin Boblein包含一個(gè)UnInstall.php文件,該文件在從WordPress儀表板上卸載時(shí)運(yùn)行時(shí)運(yùn)行。該文件應(yīng)包含任何清理代碼,例如刪除插件選項(xiàng)或數(shù)據(jù)庫(kù)表。這樣可以確保您的插件被卸載后不會(huì)留下任何痕跡。
就是這樣!現(xiàn)在,我們基于WordPress插件樣板開發(fā)了功能齊全的插件。
>根據(jù)我們到目前為止所做的事情,可以改進(jìn)各種事情。其中包括:
>刪除過(guò)時(shí)的notice-public.js腳本的起點(diǎn)。
> WordPress插件樣板是什么,為什么重要?它提供了一個(gè)易于理解和使用的清晰一致的結(jié)構(gòu),尤其是對(duì)于WordPress插件開發(fā)的新開發(fā)人員而言。這很重要,因?yàn)樗ㄟ^(guò)提供一個(gè)可靠的起點(diǎn)來(lái)節(jié)省時(shí)間和精力,從而減少了從頭開始編寫常見(jiàn)代碼的需求。它還促進(jìn)了插件的編碼,增強(qiáng)性能,安全性和可維護(hù)性的最佳實(shí)踐。>我如何開始使用WordPress插件樣板?>我可以使用WordPress插件樣板用于商業(yè)項(xiàng)目嗎?
是的,WordPress plubin Boilerplate是開源的并在GPL下獲得許可,這意味著您可以將其用于個(gè)人和商業(yè)項(xiàng)目。但是,最好在插件的文檔或積分中確認(rèn)樣板。
>我如何為WordPress插件樣板項(xiàng)目做出貢獻(xiàn)?
如何使用WordPress插件樣板處理插件選項(xiàng)? “管理”目錄中的處理插件選項(xiàng)。此類包括用于注冊(cè)設(shè)置,定義部分和字段以及渲染設(shè)置頁(yè)面的功能。您可以擴(kuò)展此類以處理插件的特定選項(xiàng)。
如何使用WordPress插入式樣板?
用于在“管理員”和“公共”目錄中制定腳本和樣式。這些課程包括用于注冊(cè)和啟動(dòng)您的腳本和樣式的功能,確保它們?cè)谡_的位置和正確的時(shí)間加載。
>>如何使用WordPress插件樣板清潔插件?
以上是WordPress插件樣板第3部分:最后一步的詳細(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脫衣機(jī)

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)

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

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

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

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

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

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

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

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