首頁 > CMS教程 > &#&按 > WordPress插件樣板第3部分:最後一步

WordPress插件樣板第3部分:最後一步

Christopher Nolan
發布: 2025-02-16 11:53:09
原創
211 人瀏覽過

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插件樣板第3部分:最後一步

這是默認的WordPress導入頁面,因此我們需要選擇先前下載的theme-unit-test-data.xml,然後單擊“上傳文件和導入”按鈕。

然後將顯示第二個屏幕。不必擔心“分配作者”部分,因為我們可以將其作為默認情況。在“導入附件”部分中,請確保勾選複選框“下載和導入文件附件”,以便將所有外部附件都下載並導入到媒體庫中。 > WordPress插件樣板第3部分:最後一步>按“提交”按鈕,然後等到成功完成導入過程。

現在,我們準備編寫顯示我們通知的代碼。

>

掛接到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 /2015/05/11/hello-world/。
<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>
登入後複製

造型通知文本

WordPress插件樣板第3部分:最後一步>我們將在.outdated Notice Div上應用一些簡單的樣式,這些樣式與整體主題設計良好,而不會侵入。為了做到這一點,對於已經使用的字體尺寸或字體系列,我們不會更改任何內容。另外,我們將暫時藉用Bootstrap配色方案和样式。

>

>打開公共/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>
登入後複製
>讓我們刷新帖子視圖,看看它的樣式。新鮮和過時的帖子的示例:

>WordPress插件樣板第3部分:最後一步 WordPress插件樣板第3部分:最後一步 就是這樣!現在,我們基於WordPress插件樣板開發了功能齊全的插件。 >

改進

>根據我們到目前為止所做的事情,可以改進各種事情。其中包括:

不同上下文的動態文本,我們可以在其中使用不同的文本進行過時的通知。 >
    >刪除過時的notice-public.js腳本的起點。
  • 可忽略的通知,以便在閱讀帖子時不會中斷用戶體驗。
  • 結論
  • WordPress插件樣板提供了一個完美的起點,可以從頭開始開發任何插件。在系列的最後一部分中,我們通過開發插件的公共面向功能來完成。修改雖然很簡單,但在很少的時間內完成,同時仍保持樣板本身確定的OOP模式並遵守標準和最佳實踐。
  • >代碼的完整副本像往常一樣在第3部分分支的GitHub上獲得。
  • >關於WordPress插件樣板的常見問題(常見問題解答)
> WordPress插件樣板是什麼,為什麼重要?它提供了一個易於理解和使用的清晰一致的結構,尤其是對於WordPress插件開發的新開發人員而言。這很重要,因為它通過提供一個可靠的起點來節省時間和精力,從而減少了從頭開始編寫常見代碼的需求。它還促進了插件的編碼,增強性能,安全性和可維護性的最佳實踐。

>我如何開始使用WordPress插件樣板?

>

您需要首先從其GitHub存儲庫下載它。下載後,您可以重命名樣板目錄和文件以匹配插件的細節。樣板的代碼被充分評估,引導您將自定義代碼放置在哪裡。請記住要更新主插件文件中的插件標頭以反映您的插件的詳細信息。

>我可以使用WordPress插件樣板用於商業項目嗎?

是的,WordPress plubin Boilerplate是開源的並在GPL下獲得許可,這意味著您可以將其用於個人和商業項目。但是,最好在插件的文檔或積分中確認樣板。

>我如何為WordPress插件樣板項目做出貢獻? >

> wordpress插件樣板的結構是什麼? WordPress插件樣板板遵循特定的結構,該結構旨在保持您的代碼組織。可管理。它由三個主要目錄組成:“管理員”,“包括”和“公共”。 “ Admin”目錄包含插件特定側面的CSS,JavaScript和PHP文件。 “ Inclusth”目錄用於定義核心插件類和其他共享功能。 “ public”目錄包含插件面向公共面的文件。

如何使用WordPress插件blobin blogin blogin?

插件的功能,通常會在“ Include”目錄中為該功能創建一個新類。此類應定義您的功能需要運行的所有掛鉤。然後,在主插件類中實例化此類,並將其添加到“運行”功能中。這種模塊化方法使您可以輕鬆地添加,刪除或修改插件中的功能。

如何使用WordPress插件樣板處理插件選項? “管理”目錄中的處理插件選項。此類包括用於註冊設置,定義部分和字段以及渲染設置頁面的功能。您可以擴展此類以處理插件的特定選項。

>如何使用WordPress插件樣板國際化插件?目錄。此類將加載插件的文本域,從而將其翻譯成其他語言。您只需要用插件的文本域替換樣板中的佔位符文本域。

如何使用WordPress插入式樣板?

用於在“管理員”和“公共”目錄中製定腳本和样式。這些課程包括用於註冊和啟動您的腳本和样式的功能,確保它們在正確的位置和正確的時間加載。

>

>如何使用WordPress插件樣板清潔插件?

> WordPress Plugin Bobilin Boblein包含一個UnInstall.php文件,該文件在從WordPress儀表板上卸載時運行時運行。該文件應包含任何清理代碼,例如刪除插件選項或數據庫表。這樣可以確保您的插件被卸載後不會留下任何痕跡。

>

以上是WordPress插件樣板第3部分:最後一步的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板