Skip to content

艾瑞克的沼澤 Posts

【第 23 天】初始化一個 WordPress 外掛

終於要進入這次參賽的最後尾聲了。接著幾天又要開始捲起袖子寫 code 囉! 我們在第三天有講到如何建立第一個 WordPress 外掛 ,可以回去複習一下:【第 03 天】第一個 WordPress 外掛。 看來,我們需要先想一個好的名稱。 好的外掛名稱 根據官方的建議,外掛的名稱應該反映你和外掛的獨特性。 所以,我們在想名字的時候,必須確保沒有侵犯商標或與其他的產品名稱產生衝突。例如,我們想做一個外掛推播 LINE 通知,但是這並不是 LINE 官方的外掛,我們就就不應該命名這個外掛為 LINE’s Notify ,命名為 Notify for LINE 會更好一點。 因此,想出一個好名稱不是一件容易的事情。 建立外掛目錄 假設,我們就叫這個外掛 Notify…

【第 22 天】開一個 LINE OA

在 WordPress 上面建立 LINE Chatbot 推播外掛之前,我們需要在 LINE 平台上面處理一些事情,才可以繼續。如果你對 LINE Chatbot 已經很熟悉,可以跳過這個章節。 服務提供者 還記得昨天我們說的說嗎?我們站在發送訊息方的角色,所以我們需要提供一支程式或網站、和一個 callback 網址給 LINE。 等等!你說我們要一個 callback 網址?那這樣不就意味著,我要搞台主機、再搞個網址、搞完還要弄 SSL? 還好有個好工具 ngrok ,提供我們快速建立一個外部可存取的網站。 ngrok 安裝 ngrok 因為我是使用…

【第 21 天】什麼是 LINE Notify?

有在使用 LINE OA 的人應該都有一種痛,那就是發送推播的成本真的很痛。但其實你要透過 LINE 完全免費 的訊息推播服務也不是不行,有種東西就叫做 LINE Notify,這就是我們今天要介紹的主角! 運作方式 LINE Notify 是一個「訊息推播」服務,但和以往我們認識的訊息推播有那麼一些些的不同,他的運作方式是這樣的: 首先,LINE 官方提供了一個 LINE Notify 帳號,他也是一個 LINE chatbot。只要使用者有訂閱你的 LINE Notify 推播服務,當你發送訊息的時候,使用者就會透過這個 LINE Notify 帳號收到通知。也因此我們都可以成為 服務提供者,發送推播給任何人,而且完全不用任何費用! 真的認真要說有什麼缺點的話,我覺得... 因為訊息變成一律由官方的 LINE Notify 帳號發出,而不是由自己建立的 LINE OA…

【第 20 天】WordPress 外掛開發者工具

今天也不寫 code ,來分享在 WordPress 的世界裡,提供了各式各樣的開發外掛,可以協助我們開發 WordPress 的時候,更正確的開發外掛和診斷問題。 Debug Bar 這個外掛會在 WordPress 上面的管理工具 bar 添加一個新的選單,用來顯示 WordPress 查詢、查詢時間這類的資訊,當 WP_DEBUG 設為 true 時,還會協助我們追蹤 PHP 警告和通知。而 SAVEQUERIES 也被設置為啟用時,SQL 查詢也會被追蹤並顯示。 Query Monitor 我們可以在通過這個外掛查看有關資料庫查詢、hook、函式、HTTP 請求這類的狀況和請求。 WP Crontrol…

【第 19 天】上架第一個外掛到 WordPress.org

今天我們不寫任何的 code ,今天我們就很單純的聊聊如何上架一個外掛到 WordPress.org 。 WordPress.org 為每一個想要開發外掛的開發者免費提供託管的服務,通過這個服務,我們可以: 監控外掛被下載的次數 取得外掛各個版本的使用統計 得到使用者的回饋和評價 WordPress.org 提供了一個 WordPress 外掛的 API,供開發者監控外掛的統計數據。 規劃外掛 1、盡可能多的測試 我們要確保外掛已經得到了盡可能多的測試,測試涵蓋了各種情況。 2、選擇一個好名稱 選擇名字的時候,確保沒有侵犯商標或與其他的產品名稱產生衝突。例如,如果你不在 Facebook 工作,你就不應該命名你的外掛為 Facebook’s Dancing Squirrels,命名為 Dancing Squirrels…

【第 18 天】WordPress 操作資料庫

我們寫外掛的時候,會要存資料到資料庫去,一般來說我們就存在 wp_options 表中,可以參考我在第十天分享的內容:如何修改 WordPress 的後台設置選項。或者就是可以存到 postmeta 或 usermeta 表中,可以參考第十一天的文章:如何管理 WordPress metadata。 不過還是會有些時候,這些不能滿足我們的需求,那我們就得需要單獨操作資料表了。這篇文章會來講講如何在寫外掛的時候去操作資料表。 創建資料表 一般在寫外掛時,創建資料表有如下三個步驟: 寫一個 PHP 函式負責建立資料表。 外掛啟動的時候去呼叫這個函式。 一個 PHP 函式負責建立資料表 我們定義這個函式叫做 eric_crate_table() ,會長成這樣: function eric_crate_table() {…

【第 17 天】WP-Cron

Cron 是基於時間的工作排程系統,而 WP-Cron 是 WordPress 中處理工作的基於時間的工作排程系。WordPress 的有很多的核心功能,例如說:檢查更新、排程發布文章這類的功能,都是使用了 WP-Cron。 WP-Cron 的工作原理是,在頁面被讀取的時候,才會開始檢查工作排程列表以查看需要運行的工作。 也因此 WP-Cron 和 Unix 系統的 Cron 運行方式是不一樣的。舉例:如果我們安排了一個工作在早上 10:00 運行,而在這之前都沒有發生任何頁面加載,則該排程也就都不會運行。 為什麼使用 WP-Cron 那為什麼我們要使用 WP-Cron 呢? 因為,很多虛擬主機不允許用戶訪問系統…

【第 16 天】JavaScript、Ajax 和 jQuery 應用到 WordPress

不知不覺也玩了 WordPress 的各種 hook 和 function 半個月了,也差不多剩下幾個章節就要告一個段落了,接著就會開始實際開發一個外掛,並且記錄下來。 那們我們今天就要來看看 JavaScript、Ajax 和 jQuery 如何應用到 WordPress 上面。至於 JavaScript、Ajax 和 jQuery 是什麼?不是我這次的重點,有興趣的朋友,可以自行去 Google 一下,會很多資料可以參考。 PHP 後端和插入前端文件 我們目的是為了在伺服器端可以處理 Ajax 請求,我們來先想想邏輯。…

【第 15 天】WordPress 的 HTTP API

HTTP 是一種用於分佈式、協作式和超媒體訊息系統的應用層協定,有興趣的可以參考維基百科對於 HTTP 的介紹,這裡就不贅述了 寫過 PHP 的朋友,應該知道有很多方法可以發送 HTTP 請求。而 WordPress 也提供了許多好用的 HTTP API 讓我們可以對第三方發送 HTTP 請求。 從 API 獲取數據 因為 GitHub 提供了一個很完整的 API ,所以我們就先從打 GitHub 的 API…

【第 14 天】WordPress 使用者角色

在 WordPress 的世界中,每個使用者至少有一個使用者名、密碼和電子郵件。一旦創建了使用者帳號,使用者就可的登錄後台來使用 WordPress 的功能。而 WordPress 使用者的資料,會被存在 wp_user 資料表中。每個使用者都會被分配一個角色,每個角色都會有一些能力。所以,我們也可以自定義能力,我們可以利用角色來限制使用者是否可以執行哪些操作。 操作 WordPress 使用者 新增使用者 我們可以使用 wp_create_user() 或 wp_insert_user() 這兩個函式來辦到。 那這兩個差別在哪裡呢?wp_create_user() 是拿一個使用者名稱、密碼和電子郵件作為參數來建立新的使用者,而 wp_insert_user() 則是可以接受拿描述使用者及和他的屬性組成的陣列或對象來建立使用者。 用 wp_create_user() 來建立 wp_create_user( string $username, string…