Skip to content

艾瑞克的沼澤 Posts

【第 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…

【第 13 天】自定義 WordPress 分類方法

在 WordPress 的世界中,我們可以註冊自定義分類法,分類的方法會被存儲在 term_taxonomy 資料表中。分類方法中有一些分類項目,這些項目則會被存儲在 wp_terms 資料表中。什麼意思呢?我們舉個例,名為 程式設計 的分類方法底下會有多個分類項目,例如說:PHP 和 Python ,大概就是這種關係。 所以接著,我們會來學習怎麼註冊一個自定義的分類方法,以及如何從我們的資料庫中去取得自定義的分類方法內容,然後顯示給用戶。 使用自定義分類法 自定義分類方法 WordPress 預設的分類方法有 分類目錄 和 標籤,在很多時候可能不能滿足我們的需求。所以這個時候,我們就會需要創建自定義分類方法。自定義分類方法通常和自定義文章類型一起使用,為我們自定義的某種內容按照我們自定義的條件分類。 為什麼使用自定義分類方法 有些人可能會好奇,我們什麼時候使用需要分類方法來組織我們在 WordPress 的內容? 假設有一個客戶是美髮店,他需要我們幫他使用 WordPress 創建一個網站,用來展示他的作品。 為了避免 作品集 這種類型的內容和其他內容混在一起,引起管理上的混亂,我們可能就會需要創建一個自定義文章類型來存儲這個設計師的作品。這時候,我們需要創建一個名為 髮型 的分類方法來把 長髮 和 中長髮 這兩種不同的髮型分開。獨立出來後,我們的自定義分類方法還可以在 WordPress 後台擁有自己獨立的選單,來方便我們去做管理,整個很方便! 課程分類方法 剛剛說了很多,所以接著我們就直接來實作看看 我們到寫文章的地方,可以看到預設有 分類 和 標籤 這兩種分類方法。 所以我們先來用 init action hook…