失敗與學習:我在一周內構建 4 個塊插件的經驗

我上周構建了四個塊插件。 這不是我打算做的事情。 我沒有一天醒來並宣稱:「我想我會在接下來的幾天內構建一套自定義塊類型。」 就這樣發生了。

我構建的第一個插件是為了解決一個 古騰堡的舊票 沒有看到任何牽引力。 也許其他人對這個想法不感興趣,或者它從未在成千上萬張其他門票的海洋中越過他們的道路。 為什麼不自己建造呢? 所以我做了。 花了幾個小時,但大部分時間是根據我的喜好和閱讀文檔重新配置@wordpress/scripts 構建腳本。

有了那個插件,我開始尋找新的問題來解決。 我已經注意到的一個是 缺少評論標題欄 有必要在 WordPress 6.0 登陸之前將即將到來的評論查詢循環塊引入功能奇偶校驗。 所以,我為它構建了一個粗略的插件。

failure-and-learning-my-experience-building-4-block-plugins-in-a-week 失敗和學習:我在一周內構建 4 個塊插件的經驗評論 站點編輯器中的標題欄。

幸運的是,其他人接受了這個最初的想法並採用了它,構建了比我第一次嘗試更靈活的東西。 現在,有一個 古騰堡的新街區.

我還有其他幾個想抓撓的癢,在一個充滿雨水的星期天,我無事可做。 也就是說,WordPress 不包含 wp_list_users() 和 wp_list_authors() 模板標籤的等效塊。 這似乎是一個疏忽,所以我處理了這些的早期版本。

我將很快將這些免費放在官方 WordPress 插件目錄中,供對它們感興趣的人使用。 我只能希望他們將來會幫助別人。

這篇文章是關於分享我的經歷,旅程,而不是這一切的結果。

最近,有人問我是否可以作為開發人員在這個大量使用 JavaScript 的塊世界中進行操作。 自從我在 WP Tavern 擔任寫作職位並為用戶開發現實世界的解決方案以來已經兩年多了。 那時我才開始在塊編輯器中使用 JavaScript。

從那以後,我開始涉足區塊主題,甚至在 WordPress.org 上發布了一個。 我在業餘時間構建了一些基於 PHP 的項目以供娛樂。 去年夏天我什至創建了我的第一個自定義塊插件 與讀者分享我的經驗. 不久之後,我建立了第二個。

我將近一年前的那團燃燒的火焰很快就熄滅了。 這與仍處於起步階段的塊主題開發狀態有關,而不是任何事情。 我對它的潛力感到興奮,但考慮到所有這些都是一個有趣的副項目,持續的破損超出了我的處理時間。

在本質上,我仍然是一個程序員,一個問題解決者。 於是,我重新開始。

第一站是 JavaScript 構建設置文檔 用於構建塊。 這次我打算學習「WordPress 方式」。 在大多數情況下,我堅持這樣做。

我唯一遇到的問題是設置腳本將我的命名空間 x3p0 插入到函數名稱中的 x_3_p_0 中。 那是一個要清理的爛攤子。 但是,我不需要在其他塊插件中完成該過程。 我只想在第一次嘗試時獲得初學者的體驗。

對於積木, @wordpress/腳本 這就是所有必要的。 我對其進行了修補,添加了幾個自定義命令,並修改了輸入/輸出文件夾。 但是,它擁有快速啟動和運行所需的一切。

我跳過了 Hola,蒙多! (你好,世界!)設置教程的一部分。 每當我著手構建任何東西時,我都計劃一頭扎進更複雜的東西。 但是,了解基礎知識以了解事情的運作方式永遠不會受到傷害。

我的編程風格是建立在失敗之上的。 我冒險提出一個想法,慘遭失敗,並繼續從錯誤中吸取教訓。 不久之後,我有了一個自定義塊類型,它顯示了一個指向嵌套評論父級的鏈接:

failure-and-learning-my-experience-building-4-block-plugins-in-a-week-1 失敗和學習:我在一周內構建 4 個塊插件的經驗評論父鏈接塊。

雖然這是成功的,但我了解到其他一些內置的編輯器組件可能會使它變得更好。

第一個區塊讓我體驗了 WordPress 的現代開發。 這是一個構建起來相對簡單的插件,但很容易看出如何將其擴展為更複雜的功能。

在過去的幾年裡,組件系統已經發展成為一個強大而靈活的工具集,供開發人員使用。 加, 組件級文檔 在這一點上是全面的,尤其是在將它與核心代碼中的用法配對時。

隨著我繼續構建新塊,我開始接受更複雜的概念。 我需要學習的一件事是如何與核心數據層進行交互。 當我進入我的第三和第四塊類型時,我需要查詢用戶並列出它們:

failure-and-learning-my-experience-building-4-block-plugins-in-a-week-2 失敗和學習:我在一周內構建 4 個塊插件的經驗通過作者塊列出用戶。

雖然有一個 「基礎」教程 在處理核心數據方面, 參考指南 有些地方參差不齊。 有些部分甚至似乎完全丟失了。 高級嚮導在哪裡? 我找不到任何東西,當你超越幾個簡單的表單欄位時,用數據「做東西」是插件開發的核心。

我花了一些時間使用經過驗證的真正的 console.log() 來弄清楚事情並仔​​細閱讀核心代碼。 最終,我推動並建立了幾個工作項目。

與一年前相比,這次我的體驗是否有所改善? 毫無疑問,它做到了。

最重要的是,我要感謝 Gutenberg 項目的所有貢獻者。 這位大部分時間都在 PHP 世界度過的開發人員歡迎使用構建工具和一系列預構建組件。 我總是喜歡能夠拿起一個工具集並立即開始構建它。 我敢肯定,此時我只是瞥見了一些可能的事情,但我期待嘗試新事物。 隨著我變得越來越舒服,也許我會寫一些我認為缺少的高級教程。

類別: 觀點, 插件

來源

相關文章