WordPress插件樣板第3部分:最後一步
鑰匙要點
- > WordPress插件樣板系列的第三部分重點是實現插件的公共面向功能,其中包括檢索用戶首選項並在其單個帖子視圖上相應地顯示通知。 >
- >指南說明瞭如何準備測試主題,如何將其連接到the_content過濾器中,如何有條件地修改內容以及如何計算當前時間和帖子最後修改時間之間的差異。 還討論了
- 造型通知文本,作者提供了一個簡單的樣式指南,以匹配整體主題設計。作者還提出了潛在的改進,例如針對不同上下文的動態文本和可忽視的通知。 >
- 作者通過突出顯示WordPress插件樣板的好處,指出其清晰的結構,遵守最佳實踐以及為插件開發具有可靠的起點的節省時間的結論。 在本系列的第二部分中,我們為插件準備了簡單的管理功能。我們為用戶提供了一個選項頁面,他們可以根據他們的首選項調整插件。
如果您錯過了第1部分和第2部分,請在下面找到它們:
>> WordPress插件樣板第1部分:使用WordPress插件板
- 加速開發
- > WordPress插件樣板第2部分:開發WordPress插件
- 在本文中,我們將實現插件的公開功能。這意味著我們將檢索用戶的偏好,確定該特定帖子是否過時,並在其單個帖子視圖上相應地顯示通知。讓我們開始!
>我們需要準備主題,以便以後可以對其進行測試。我們將使用WordPress默認運輸的二十五個主題。我們將使用主題審核團隊提供的主題單元測試數據來填充帖子。
>我們需要下載上述法典頁面上提供的主題單位test-data.xml,並將其導入我們的WordPress安裝中。 WordPress內置的導入功能可以通過導航到側欄的導入工具>
>我們將提供各種選擇,並且由於我們正在導入WordPress導出文件,因此我們將選擇WordPress。根據WordPress的安裝,如果我們沒有安裝WordPress進口商插件,將顯示插件彈出窗口。如果您沒有它,請首先繼續安裝插件,一旦完成後,我們將繼續進行實際的導入過程。
這是默認的WordPress導入頁面,因此我們需要選擇先前下載的theme-unit-test-data.xml,然後單擊“上傳文件和導入”按鈕。
然後將顯示第二個屏幕。不必擔心“分配作者”部分,因為我們可以將其作為默認情況。在“導入附件”部分中,請確保勾選複選框“下載和導入文件附件”,以便將所有外部附件都下載並導入到媒體庫中。
現在,我們準備編寫顯示我們通知的代碼。
>
掛接到the_content filter使用the_content過濾器是更改向用戶顯示的帖子內容的完美方法。根據上一個教程,我們將將鉤子添加到樣板類加載器中,唯一的區別是將使用Define_public_hooks方法而不是Define_admin_hooks。
>將此代碼添加到該方法中:
這意味著,我們需要將公共the_content方法實現到我們的OUTED_NOTICE_PUBLIC類中。打開公共/班級淘汰 - notice-public.php並進行相應的修改。
>
有條件修改內容<span>$this->loader->add_action( 'the_content', $plugin_public, 'the_content' );</span>
因為the_content過濾器由各種插件和內部WordPress核心使用,所以我們需要謹慎地將我們的自定義內容插入其中。
>>我們需要確保只有在顯示單個帖子而不在博客文章索引上插入過時的通知文本。為了做到這一點,我們可以使用IS_MAIN_QUERY函數過濾它。只要我們需要確定運行查詢是主要的還是輔助/自定義查詢。
>我們需要考慮的另一件事是,我們將僅顯示帖子類型帖子單一視圖的通知文本,因此is_singular('post')驗證將非常適合工作。這是oftated_notice_public類中包含的更新的the_content方法。
計算天數
>在開始之前,讓我們設置位置,以使通知顯示為“之前”帖子,而閾值的天數為30。
首先,我們需要檢索插件的存儲設置。 get_option函數將完成這項工作,作為一個安全的度量,我們將將默認值作為第二個參數將其傳遞給get_option。
<span>$this->loader->add_action( 'the_content', $plugin_public, 'the_content' );</span>
>計算當前時間和帖子最後修改時間之間的天數,我們將實例化兩個日期對象。我們可以使用內置在DateTime類中的DIFF方法進行準確的時間差測量。請注意,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>
>
<span>$position = get_option( 'outdated_notice_position', 'before' ); </span> <span>$days = (int) get_option( 'outdated_notice_day', 0 );</span>
<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>
>為了更好地翻譯現成的文本,我們將使用_n函數選擇為選擇適當的文本,這是根據帖子上次更新以來的天數。然後,我們將以自己的div包裝通知文本,以便以後可以對其進行樣式。請隨時將通知文本調整為自己喜歡。
>$通知變量現在應包含我們將插入帖子內容的標記。剩下的唯一要做的就是將其添加。
<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最終應該看起來。
<span>if ( $date_diff->days > $days ) { </span> <span>$class = 'is-outdated'; </span> <span>} else { </span> <span>$class = 'is-fresh'; </span> <span>}</span>
>嘗試瀏覽幾頁,以查看我們的插件是否按預期工作。這是我在瀏覽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文件夾中包含的過時的notice-public.css文件,並添加此規則。
>我們還需要兩種不同的樣式來表示後循環,這是.is fresh的一種樣式,另一種是以上的。這個片段應該可以解決問題,為我們提供了一個不錯的綠色配色方案,用於新的帖子,紅色配色方案用於過時的帖子。
<span>if ( 'after' == $position ) { </span> <span>$post_content .= $notice; </span> <span>} else { </span> <span>$post_content = $notice . $post_content; </span> <span>}</span>
> 改進
您需要首先從其GitHub存儲庫下載它。下載後,您可以重命名樣板目錄和文件以匹配插件的細節。樣板的代碼被充分評估,引導您將自定義代碼放置在哪裡。請記住要更新主插件文件中的插件標頭以反映您的插件的詳細信息。 > wordpress插件樣板的結構是什麼? 插件的功能,通常會在“ Include”目錄中為該功能創建一個新類。此類應定義您的功能需要運行的所有掛鉤。然後,在主插件類中實例化此類,並將其添加到“運行”功能中。這種模塊化方法使您可以輕鬆地添加,刪除或修改插件中的功能。 >如何使用WordPress插件樣板國際化插件?目錄。此類將加載插件的文本域,從而將其翻譯成其他語言。您只需要用插件的文本域替換樣板中的佔位符文本域。 > WordPress Plugin Bobilin Boblein包含一個UnInstall.php文件,該文件在從WordPress儀表板上卸載時運行時運行。該文件應包含任何清理代碼,例如刪除插件選項或數據庫表。這樣可以確保您的插件被卸載後不會留下任何痕跡。
就是這樣!現在,我們基於WordPress插件樣板開發了功能齊全的插件。
>根據我們到目前為止所做的事情,可以改進各種事情。其中包括:
>刪除過時的notice-public.js腳本的起點。
> WordPress插件樣板是什麼,為什麼重要?它提供了一個易於理解和使用的清晰一致的結構,尤其是對於WordPress插件開發的新開發人員而言。這很重要,因為它通過提供一個可靠的起點來節省時間和精力,從而減少了從頭開始編寫常見代碼的需求。它還促進了插件的編碼,增強性能,安全性和可維護性的最佳實踐。 >我如何開始使用WordPress插件樣板? >我可以使用WordPress插件樣板用於商業項目嗎?
是的,WordPress plubin Boilerplate是開源的並在GPL下獲得許可,這意味著您可以將其用於個人和商業項目。但是,最好在插件的文檔或積分中確認樣板。
>我如何為WordPress插件樣板項目做出貢獻?
如何使用WordPress插件樣板處理插件選項? “管理”目錄中的處理插件選項。此類包括用於註冊設置,定義部分和字段以及渲染設置頁面的功能。您可以擴展此類以處理插件的特定選項。
如何使用WordPress插入式樣板?
用於在“管理員”和“公共”目錄中製定腳本和样式。這些課程包括用於註冊和啟動您的腳本和样式的功能,確保它們在正確的位置和正確的時間加載。
>>如何使用WordPress插件樣板清潔插件?
以上是WordPress插件樣板第3部分:最後一步的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

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

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

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

最近,我們向您展示瞭如何通過允許用戶將自己喜歡的帖子保存在個性化庫中來為用戶創建個性化體驗。您可以通過在某些地方(即歡迎屏幕)使用他們的名字,將個性化結果提升到另一個水平。幸運的是,WordPress使獲取登錄用戶的信息變得非常容易。在本文中,我們將向您展示如何檢索與當前登錄用戶相關的信息。我們將利用get_currentuserinfo(); 功能。這可以在主題中的任何地方使用(頁眉、頁腳、側邊欄、頁面模板等)。為了使其工作,用戶必須登錄。因此我們需要使用

有四種方法可以調整 WordPress 文章列表:使用主題選項、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代碼(在 functions.php 文件中添加設置)或直接修改 WordPress 數據庫。

博客是人們在網上表達觀點、意見和見解的理想平台。許多新手渴望建立自己的網站,卻因擔心技術障礙或成本問題而猶豫不決。然而,隨著平台不斷發展以滿足初學者的能力和需求,現在開始變得比以往任何時候都更容易。 本文將逐步指導您如何建立一個WordPress博客,從主題選擇到使用插件提升安全性和性能,助您輕鬆創建自己的網站。 選擇博客主題和方向 在購買域名或註冊主機之前,最好先確定您計劃涵蓋的主題。個人網站可以圍繞旅行、烹飪、產品評論、音樂或任何激發您興趣的愛好展開。專注於您真正感興趣的領域可以鼓勵持續寫作

您想了解如何在父分類存檔頁面上顯示子分類嗎?在自定義分類存檔頁面時,您可能需要執行此操作,以使其對訪問者更有用。在本文中,我們將向您展示如何在父分類存檔頁面上輕鬆顯示子分類。為什麼在父分類存檔頁面上顯示子分類?通過在父分類存檔頁面上顯示所有子分類,您可以使其不那麼通用,對訪問者更有用。例如,如果您運行一個關於書籍的WordPress博客,並且有一個名為“主題”的分類法,那麼您可以添加“小說”、“非小說”等子分類法,以便您的讀者可以

過去,我們分享過如何使用PostExpirator插件使WordPress中的帖子過期。好吧,在創建活動列表網站時,我們發現這個插件非常有用。我們可以輕鬆刪除過期的活動列表。其次,多虧了這個插件,按帖子過期日期對帖子進行排序也非常容易。在本文中,我們將向您展示如何在WordPress中按帖子過期日期對帖子進行排序。更新了代碼以反映插件中更改自定義字段名稱的更改。感謝Tajim在評論中讓我們知道。在我們的特定項目中,我們將事件作為自定義帖子類型。現在

要使用 WordPress 主機建站,需要:選擇一個可靠的主機提供商。購買一個域名。設置 WordPress 主機帳戶。選擇一個主題。添加頁面和文章。安裝插件。自定義您的網站。發布您的網站。

您是否正在尋找自動化 WordPress 網站和社交媒體帳戶的方法? 通過自動化,您將能夠在 Facebook、Twitter、LinkedIn、Instagram 等平台上自動分享您的 WordPress 博客文章或更新。 在本文中,我們將向您展示如何使用 IFTTT、Zapier 和 Uncanny Automator 輕鬆實現 WordPress 和社交媒體的自動化。 為什麼要自動化 WordPress 和社交媒體? 自動化您的WordPre

我們的一位用戶詢問其他網站如何在頁腳中顯示查詢數量和頁面加載時間。您經常會在網站的頁腳中看到這一點,它可能會顯示類似以下內容:“1.248秒內64個查詢”。在本文中,我們將向您展示如何在WordPress中顯示查詢數量和頁面加載時間。只需將以下代碼粘貼到主題文件中您喜歡的任何位置(例如footer.php)。 queriesin
