創建 WordPress 外掛程式比您想像的要容易
已發表: 2014-06-10Beaver Builder 產品 25% 折扣!快點促銷結束...精益更多!
直到幾年前,我還沒有寫過任何 WordPress 外掛。我為客戶創建和定制了許多主題,但出於某種原因,我不斷告訴自己創建插件超出了我的能力。
事後看來,我大錯特錯了。
如果你曾經有過這樣的感覺,讓我告訴你一件事。建立 WordPress 外掛並不超出您的能力範圍。任何有足夠技能編寫基本 PHP 和修改主題的人都可以建立外掛。
這就是我啟動 Beaver Builder 插件的方式(它是免費的,因此您可以嘗試)以及您也可以如何啟動您的插件。
如果您像我一樣,您可能一直在向主題添加功能而不是創建插件。在很多情況下這樣做是可以的,但也有一些情況下,將自訂功能添加到插件中會更好。為什麼會問?
考慮這種情況。
您已向主題添加了將預設頭像變更為您自己的自訂頭像的功能。唯一的問題是,您剛剛更改了主題,但現在主題消失了。如果您已將該程式碼新增至外掛程式中,當您決定切換主題時它仍然會在那裡。
我們在 Tabata Times 多站點網路中遇到了這個問題。他們使用一些需要共享自訂功能的主題。您認為我們如何解決這個問題?您猜對了,透過將大量功能新增至外掛程式中,以便網路上的所有網站都可以使用它,無論它們使用哪個主題。
不要將自己鎖定在一個主題中。使用 #WordPress 外掛程式來取代功能。分享到 X我不是開玩笑。您可以透過五個簡單的步驟來建立 WordPress 外掛。讓我向您展示如何...
您需要做的第一件事是使用您選擇的 FTP 程式(我的是 Coda)透過 FTP 存取您的網站。如果您不熟悉 FTP,我建議您在繼續之前先閱讀。
透過 FTP 存取網站後,您需要導航到 WordPress 外掛程式資料夾。該資料夾幾乎總是位於 /wp-content/plugins。
現在您已位於外掛程式資料夾中,是時候為您的外掛程式建立資料夾了!繼續建立一個新資料夾,使用小寫字母和破折號為其指定一個唯一的名稱,例如 my-first-plugin。完成後,輸入新資料夾並繼續下一步。
接下來,您需要為外掛程式建立主文件。為此,請在新插件資料夾中建立一個 PHP 文件,並為其指定相同的名稱,例如 my-first-plugin.php。完成後,打開插件的主文件並準備進行一些編輯。
最後,將下面的插件資訊複製並貼上到您的主插件檔案中。請務必編輯與您的插件相關的詳細信息,例如插件名稱和插件 URI。
<?php /** * Plugin Name: My First Plugin * Plugin URI: http://www.mywebsite.com/my-first-plugin * Description: The very first plugin that I have ever created. * Version: 1.0 * Author: Your Name * Author URI: http://www.mywebsite.com */
就是這樣!您剛剛完成了創建 WordPress 外掛所需的最少步驟。現在您可以在 WordPress 管理員中啟動它並享受您所有的榮耀。
此時,您可能想知道這個插件應該做什麼。嗯,它沒有任何作用!我說過我會向您展示如何創建一個插件,但我並沒有說我會向您展示如何創建一個可以執行任何操作的插件。
開個玩笑吧,這篇文章的目的是說明開始創建 WordPress 外掛是多麼簡單。按照上述步驟進行操作,您就可以開始讓事情發生了。
現在您已經有了一個插件,讓我們讓它做一些事情。
在 WordPress 中實現目標的最簡單方法是使用操作和過濾器。讓我們透過創建一個簡單的操作來探索這一點,該操作在您網站上的所有帖子下方添加一行文字。複製此程式碼並將其貼上到您的主插件檔案中(位於插件資訊下方)並儲存。
add_action( 'the_content', 'my_thank_you_text' ); function my_thank_you_text ( $content ) { return $content .= '<p>Thank you for reading!</p>'; }
此程式碼掛鉤到 WordPress 為您的網站呈現貼文內容時觸發的「the_content」操作。當該操作觸發時,WordPress 將呼叫在「add_action」呼叫下方定義的「my_thank_you_text」函數。
如果您已經做到了這一步,希望我們一致認為創建一個簡單的 WordPress 外掛相對容易。但是,如果您想創建一個不僅僅完成一項簡單任務的插件怎麼辦?
如果您要開始編寫自己的插件,我強烈建議您熟悉操作和過濾器的工作原理以及哪些可供您使用。 WordPress Codex 是我花費大量時間的地方,我建議您也這樣做。
外掛程式 API:操作和過濾器
插件 API:操作參考
外掛程式 API:過濾器參考
同樣,在開發外掛程式時,我花了很多時間在 WordPress Codex 上閱讀核心功能。核心功能如此之多,我不希望您知道它們的每一個是什麼以及它們的作用。畢竟,這就是 Codex 的用途,所以請使用它!
最後,如果您最終創建了一個可以做一些漂亮事情的插件,您可能需要建立一個選項頁面,以便使用它的人可以修改功能。建立選項頁面不是必需的,有許多外掛程式可以在沒有選項頁面的情況下安裝和執行某些操作,但是擁有一個選項頁面對於外掛程式的使用者來說可能是一個很好的補充。
建立選項頁面超出了本文的範圍,因此我將再次將您交給 WordPress Codex。
編寫插件
建立選項頁面
建立 WordPress 外掛是一種非常自由的方式,也是深入了解 WordPress 運作原理的好方法。如果您還沒有,我強烈建議您嘗試建立一個插件。如果您這樣做並想出了有時有用的建議,請不要忘記您可以透過 WordPress 外掛目錄將其免費分發給其他人。
您是否已經創建了第一個插件或計劃很快創建一個?如果是這樣,我很想在下面的評論中聽到它!
一篇鼓舞人心且令人興奮的文章。
尤其是對我來說,就像你提到的自己一樣害怕 WordPress 的程式碼方面。
我非常喜歡並使用 WordPress。
當需要添加一些功能時,我會選擇插件
但正如您所提到的,這些插件缺少一些功能來滿足我的所有需求。
所以我被阻止進一步推進我的專案。因為我無法對程式碼進行必要的修改。
因此,我真的很期待能夠應對 WordPress 的 Codex,並在專案中找到出路。
再次感謝您提供鼓舞人心和激勵人心的內容。
好的。足以快速啟動
多好的文章啊!另一個關於將 html 模板轉換為 WordPress 主題怎麼樣?
這非常有幫助!謝謝
對於像我這樣有同樣恐懼症的人來說,這是非常有用的破冰船!謝謝。
哇!非常感謝,我現在可以編寫插件了。一直想知道那些人是怎麼寫的,從來不知道這麼簡單!我的疑慮已經解開。
我一直認為子主題是解決這個問題的最佳方法,但可惜的是,如果我更改父主題,我就會失去功能。這很有意義。謝謝你!
是的!你讓我明白了「我並沒有說我會向你展示如何創建一個可以做任何事情的插件。 」
教導用戶並保持用戶參與度的好方法!
我現在正在為我的插件添加管理介面......非常感謝!
我認為您可能缺少 PHP 結束標記:?
如果檔案僅包含 PHP 程式碼,則最好省略檔案末端的 PHP 結束標記。這可以防止在 PHP 結束標記後意外添加空格或新行,這可能會導致不必要的影響,因為當程式設計師無意在腳本中的該點發送任何輸出時,PHP 將開始輸出緩衝。
有趣的。我讀過的其他教程包括結束標籤,所以我只是認為這是一個錯誤,但你是完全正確的。
謝謝
感謝您為我們所有WP 新寫的這篇文章,我可以問一個愚蠢的問題嗎?相同的操作,但它將是獨立的從主題出發吧?謝謝
在仔細閱讀了您的整篇文章後,我創建了我的第一個 WordPress 外掛。感謝大佬分享您的寶貴資訊。
不錯的帖子,對我來說是有用的提示。感謝分享。
感謝這篇精彩的文章,它增強了我接觸 WordPress 程式碼和創建自己的外掛程式的信心。
您好,感謝您提供的信息
上面程式碼中是add_action還是add_filter?
據我所知,「the_content」是一個過濾器而不是一個操作。因此,您應該使用 add_filter 而不是 add_action
很棒的帖子。但程式碼中有一個小錯誤。您必須使用 add_filter 而不是 add_action,因為 the_content 是一個過濾器。
多謝!非常有幫助
你好,
我已經了解了您的教程,並且對製作插件有了一些想法。我覺得這對每個人來說都是一篇不錯的文章,對初學者來說也是多產的。可能會有更多收穫,希望你能幫助我。
出色的!這是一種非常簡單方便的 WP 外掛開發方法,我喜歡它。
我將為我的 WP 建立一個計算器插件,但我無法在網路上找到它。
感謝分享
我可以對 WordPress 5.3.x 使用此步驟嗎?
您好,感謝您提供基礎知識,正如大多數人所說,但按照建議查看了 WordPress,我找不到“如何添加”“查看詳細信息”頁面。你知道有多少人在使用它、星級評定等。
謝謝
這真是哇!我認為創建一個插件會讓我付出天上和地上的代價。
感謝您的精彩貼文
非常感謝我所需要的!
這太棒了,當有人試圖決定我是否想進入插件開發時,這真的很有幫助。
今天我建立了我的第一個插件。感謝您的靈感
這是很棒的文章!剛剛使用 BB 模組使用過濾器製作了一個快速插件。嗚呼!
我還沒有創建插件,但我確實定期為主題創建自訂內容。什麼時候適合使用插件,什麼時候你會建議不要使用插件?
我正在考慮我想將當前主題的哪些部分分解為插件以幫助進行版本控制。
我不想在網站中啟動大量插件,但也希望在明智的情況下實現插件,並且我對您對此的想法感興趣。
好一個。
我以為創建 WordPress 外掛是一項非常困難的任務,但讀完這篇部落格後我的想法完全改變了
謝謝。
完美的貼文!我真的很喜歡你簡單而完美的訊息。非常感謝您的精彩分享。我會花很多時間在 Codex 上學習您的技巧。再次感謝
真是太棒了。這對所有使用 WordPress 的部落客都有幫助。
很棒也很鼓舞人心