WordPress 是市佔率最高的網站軟體,直至 2019 年高達 37% 的網站使用。自成一個完整的生態鏈。如果你有好的點子可以從 WordPress 外掛收費,那麼商機無限。但凡事總要起個頭。我來帶你瞭解,如何發佈一個 WordPress 外掛。
第一步,先取個好名字。
這邊指的是外掛的名稱代碼 (slug)。為了避免名字已經被佔用,在外掛完成時,提交官方審核的結果是名字已經被使用,程式碼裡和外掛名稱的相關字串及目錄名稱還需要一一修改。
這種經驗筆者已經遇過幾次了。所以要先查一下目前外掛目錄中是否已經有人使用相同的命名。
WordPress 官方外掛目錄中,每一個外掛的網址會看起來像以下格式:
https://wordpress.org/plugins/{slug}
{slug}
指的是外掛的名稱代碼。只接受小寫的英文字母及 -
連接符號。
直接在瀏覽器的網址列中,修改 slug,假如會轉址到搜尋頁面,表示這個 slug 有兩種情況:
修改過後,如果是轉址到搜尋頁面,而非外掛介紹頁面,就先假設這個名稱是可以用的。
先試過幾筆和鐵人賽作品 PHP 套件 simple cache 一樣的名稱,例如 simple-cache
、wp-simple-cache
,結果是外掛介紹頁面。這代表 slug 都已被使用了,所以決定先使用 cache-master
來試試,中文可以譯作「快取大師」不管是看起來,還是聽起來都蠻威猛的樣子 ^^"。
在本機端開發環境,架一個 WordPress 部落格,並在外掛目錄中建一個工作目錄。
(圖:筆者的 Window 環境,WordPress 裡的 plugin 目錄)
工作目錄的名稱就是上一步驟所提到的 slug。外掛的檔案都在這裡面。
由於 WordPress 的外掛伺服器採用的版本控制軟體是 Subversion,簡稱 SVN。在上圖中,會看到用 svn_
為開頭的目錄,那是筆者用來上傳至 WordPress 的外掛伺服器用的。在每次修改完成準備要發版,就會把外掛檔案複製到上傳專用的目錄。
這個步驟,一共建立了兩個目錄:
cache-master
svn-cache-master
WordPress 管理後台的外掛列表清單中,列出目前已啟用、未啟用的所有外掛。而我們要建立一個在 WordPress 管理後台的外掛列表清單中,也可以看到自己的外掛的資訊。
我們才剛剛建立一個工作目錄,裡面什麼東西都還沒有。還需要一個初始化外掛用的 PHP 檔案在工作目錄中,才能讓 WordPress 找到這支新外掛。
初始化檔案的檔名並沒有限制,但最好與 slug 同名。
例如:
./wp-content/plguins/cache-master/cache-master.php
檔頭資訊是一個放在檔案最前面,以 PHP 註解語法為主體的文字區塊。
(圖:初始化檔案的檔頭資訊)
在剛剛建立好的目錄下,建立一個空白的 PHP 檔案。塞入外掛資訊如下:
<?php
/**
* Plugin Name: Cache Master
* Plugin URI: https://github.com/terrylinooo/cache-master
* Description: A wordpress cache plugin.
* Version: 1.0.0
* Author: Terry Lin
* Author URI: https://terryl.in/
* License: GPL 3.0
* License URI: http://www.gnu.org/licenses/gpl-3.0.txt
* Text Domain: cache-master
* Domain Path: /languages
*/
接著存檔。
WordPress 的機制是,當進到外掛列表時,會掃描在 ./wp-content/plugins
這個目錄下的所有目錄,查看裡頭的 PHP 檔案中是否有以上的檔頭資訊。當找到時,就會出現在外掛列表中。
(圖:WordPress 後台外掛列表)
uninstall.php
以外,同時避免該目錄下有其它的 .php
檔案。有的外掛把功能性的 php 檔案放在工作目錄第一層,只會造成 WordPress 在外掛列表時多花時間掃描檔頭資訊,是不好的習慣。
良好的檔案目錄結構可讀性也很重要。
別讓自己的外掛成為效能殺手。優秀的外掛不但重視安全性,也重視記憶體的使用,多為使用虛擬主機的使用者們著想。
WordPress 有它自己的程式碼風格,因此筆者在 Day 11 所介紹的 PSR 程式碼風格指南,在這裡不適用。入境隨俗,在社群裡採用社群的規範是最基本的尊重,也能保持程式碼風格的一致性。
歡迎光臨 WordPress 開發者的世界,筆者身為一位 WordPress 愛好者,歡迎大家一起加入這個社群,為社群增添更多活力 ^^。
以下是開發者必讀的連結:
明天會帶大家一起認識 WordPress 的程式碼風格,並使用 PHP CodeSniffer 來輔助,快速上手 WordPress 的程式碼風格。我們明天見。