鑰匙要點
- > 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>$ $ date_diff是dateinterval類的一個實例,因此我們將擁有有關時間差的一系列數據。如果我們要var_dump $ date_diff變量,這是我們應該得到的,具體取決於您當前正在查看的帖子。
>
<span>$position = get_option( 'outdated_notice_position', 'before' ); </span> <span>$days = (int) get_option( 'outdated_notice_day', 0 );</span>>我們只對日子價值感興趣,因為它將與我們的日期閾值進行比較。正如我之前說的,我們將比較它們,以便我們可以將特定類應用於通知div元素,以在帖子之間以不同的方式進行樣式。
<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>這個簡單的比較塊足以確定用於我們的Div的哪個類。現在剩下的唯一的是實際構建以添加到帖子內容中的HTML。
>為了更好地翻譯現成的文本,我們將使用_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中文網其他相關文章!

WordPressPluginsscmscmscapabilities byferingCustomization和Functionality.1)超過50,000pluginsallowuserstailostailortheortheortheortheirsiteforseo,電子商務和蘇聯。 2)pluginScaneCanextendCoreFeatures,likeaddingcustompostposttypes.3bully.3 burl

是的,WordPress非常适合做电商。1)通过WooCommerce插件,WordPress可以快速变成功能全面的在线商店。2)需要关注性能优化和安全性,定期更新和使用缓存、安全插件是关键。3)WordPress提供了丰富的定制选项,提升用户体验和SEO优化效果显著。

您想將您的網站連接到Yandex網站管理員工具嗎? Google搜索控制台、Bing和Yandex等網站管理員工具可幫助您優化網站、監控流量、管理robots.txt、檢查網站錯誤等。在本文中,我們將分享如何在Yandex網站管理員工具中添加您的WordPress網站來監控您的搜索引擎流量。什麼是Yandex? Yandex是一個位於俄羅斯的流行搜索引擎,類似於Google和Bing。您可以在Yandex中優

您需要修復WordPress中的HTTP圖片上傳錯誤嗎?當您在WordPress中創建內容時,此錯誤可能會特別令人沮喪。當您使用內置WordPress媒體庫將圖像或其他文件上傳到CMS時,通常會發生這種情況。在本文中,我們將向您展示如何輕鬆修復WordPress中的HTTP圖片上傳錯誤。 WordPress媒體上傳過程中出現HTTP錯誤的原因是什麼?當您嘗試使用WordPress媒體上傳器將文件上傳到Wo

最近,我們的一位讀者報告說,他們的WordPress網站上的“添加媒體”按鈕突然停止工作。此經典編輯器問題不會顯示任何錯誤或警告,這使用戶不知道為什麼他們的“添加媒體”按鈕不起作用。在本文中,我們將向您展示如何輕鬆修復WordPress中的“添加媒體”按鈕不起作用的問題。是什麼導致WordPress“添加媒體”按鈕停止工作?如果您仍在使用舊的經典WordPress編輯器,那麼“添加媒體”按鈕允許您將圖像、視頻等插入博客文章中。

您想了解如何在WordPress網站上使用cookie嗎? Cookie是在用戶瀏覽器中存儲臨時信息的有用工具。您可以使用此信息通過個性化和行為定位來增強用戶體驗。在本終極指南中,我們將向您展示如何像專業人士一樣設置、獲取和刪除WordPresscookie。注意:這是一個高級教程。它要求您精通HTML、CSS、WordPress網站和PHP。什麼是Cookie? Cookie是用戶訪問網站時創建並存儲在用戶瀏覽

您是否在WordPress網站上看到“429請求過多”錯誤?此錯誤消息意味著用戶向您網站的服務器發送了太多HTTP請求。此錯誤可能會非常令人沮喪,因為很難找出導致該錯誤的原因。在本文中,我們將向您展示如何輕鬆修復“WordPress429TooManyRequests”錯誤。是什麼原因導致WordPress429請求過多錯誤? “429TooManyRequests”錯誤的最常見原因是用戶、機器人或腳本嘗試向網站

WordPressCanHandLeLArgeWebsiteswithCareFulplanningAndOptimization.1)USECACHINGTOREDUCESERVERVERLOAD.2)優化YourDataBaseRegularly.3)actimentAcdNtododistibuteContent.4))


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Linux新版
SublimeText3 Linux最新版

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。