本篇文章更新時間:2019/07/05
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
Getting Started
使用WordPress這套框架開發網站,以後端的角色跟前端夥伴合作,下方是一些經驗整理,常用外掛系列,裡面包含了很多組合,並非每個案子都會使用這些工具,根據情況調整與搭配自己或夥伴延伸開發的方式也是不少,但沒有這些工具,開發想必更為困難,感謝社群~
2019/07/05 更新,後來我把更新重點放在外掛裡面,文章並沒有即時同步最新的清單。外掛部分可以到 WordPress 後來下載: 一介資男(Mxp.TW) 開發工具箱
主要項目
Post Type (新型態)類
WordPress 的核心架構,從這「型態」出發,延伸出各種內容來從前端顯示。 1. Custom Post Type UI 建立新型態的文章內容,用來客製化不同內建文章/頁面的「標題」、「內文」結構形式。
- Advanced Custom Fields 當完成安裝與建立客製化新型態後,會發現那還只是跟內建的文章/頁面結構一樣,只是在後台選單上多了一個新的選項,這時候要搭配這款客製化定義欄位的工具,指定新型態格式,自定義該新型態內容使用哪些欄位。
Capabilities (權限)類
扯到內容,就會有操作權限的管理,WordPress 在這部分並沒有像其他 CMS 有非常「計較」權限的管理,屬於大方向的命名權限,並針對該命名權限從程式中鎖定,不能說有強硬的限制開發或是使用某種框架(framework),這點既是彈性也是在開發給客戶時要注意的地方。 1. User Role Editor 從最基礎的權限(Capabilities)出發,可以配置給單獨的使用者或是角色,介面稍微陽春。
三種權限管理類的外掛都有特色,以個人經驗區分使用情境為:客戶用戶數少且變化多適合第一種、用戶數多且單純適合二、三種。 ### 類權限管理 類
從開發角度來去限制、管理其他自由開發的外掛本來就會造成架構難度提升,所以這個分類的概念就是「疊加」,透過別的外掛來更進階處理其他外掛的不足,真要說為什麼要這麼做,就是為了日後升級的彈性囉! 1. Admin Menu Editor 有時候因為要調整出客戶可讀性與方便性高的選單時就會需要他,擁有直接修改選單顯示名稱與排序功能
- Adminimize WP 內建的權限設定沒有針對角色還有更細的增刪修查限制功能,同個權限下的使用者如果有希望不同的操作介面,就會需要使用這外掛去「隱藏」,做一些髒髒der事。
至於更細部的權限微調大部分都是直接coding在子主題下了!
頁面客製化 類
設計頁面(page)會碰到個問題:求速度與精緻常使用一些主題(theme)作為前導,但大部分主題強化前端視覺使用短碼(short code)的方式,其實不適用一般使用者(end-user),常有非單純重複貼文功能的頁面要讓客戶修改的時候,避免客戶誤觸雷區與使用者體驗提升,針對輸入的內容會需要程式化挖空,這點大部分就要透過下面的外掛來搭配了
- Pagely MultiEdit 當頁面中有多個欄位是希望提供給客戶使用時,這套外掛可以做挖空,提供填空的方式修正頁面,其他資源可以參考官方教學
- Custom Post Widget 同樣屬於挖空部分內容提供客戶有固定區域修改文案的功能,結合小工具(widgets)或是自行開發延伸的方式都很方便
- Custom Login 登入後台的樣式客製化,強化客戶歸屬感強化XD
- Customize Login Image 同上,歸屬感強化的換登入介面工具
常見項目
下面的項目比較偏向綜合來看,大多客戶或開發上會需要的輔助
聯絡表單 類
- Contact Form 7 說到表單一定要用這款
- Contact Form DB 送出去的表單通常是直接寄信到客戶那邊,用這款外掛可以做資料管理
活動事件 類
- Event Organiser 客戶公開活動、行程等這類需求也不少,需要的包涵時間地點等資訊也滿完整的
- Another Events Calendar 最近發現的外掛,跟上面有的功能差不多
發信與訂閱 類
- Postman SMTP Mailer/Email Log 根據客戶需求,架構簡單的可以使用 SMTP 方式寄信,GMail 每日 250 封的限制其實滿夠大部分形象網站,這款支援使用Gmail API為比較正確的請求方式,建議!
- Easy WP SMTP 同上差不多類型
- WP Mail SMTP 同上差不多類型
- WP SES 有需要大量發送或是希望更穩定服務的客戶可以推薦使用 Amazon SES 服務
- Mailgun for WordPress 或是使用 MailGun 的介接也滿方便與穩定
- Email Subscribers & Newsletters 免費強大的訂閱系統,適合搜集名單,至於要發有追蹤系統流程類的EDM,還是建議用付費的專業系統,其他資訊可以參考這邊
- MailPoet Newsletters 有搭配 autoresponder 的服務,客戶如有需要整合在網站的專業EDM服務可以使用這款
WooCommerce 類
- WooCommerce Social Login - WordPress plugin 測試過免費的外掛,想改登入成功後的導向不行要硬改、然後混合式登入模式邏輯也有點怪,這款付費一次搞定
- WooCommerce Dynamic Pricing & Discounts 目前套用各種客戶要求的折扣模式都還挺行的外掛
- WooCommerce Extended Coupon Features 免費但也夠強的折扣外掛,組合上也很厲害
- WooCommerce Checkout Field Editor Pro 結帳時的欄位調整
- WooCommerce Checkout Manager 同上,調整結帳欄位時的方便工具
WooCommerce光是折扣部份就有很多內容可以寫不完了,但應該不會有一款外掛打趴全部的情況(因為這可能會有很複雜難用的後作用)
效能調教 類
- W3 Total Cache 搭配這款外掛也建議從伺服器上跟進,安裝一些快取機制的應用來強化,速度可以大幅提升
- Redis Object Cache Redis 做快取有連續性特性,性能也不錯,可以對付高流量站
- Incapsula 免費CDN的選擇,這款有個Aggressive模式夠強
- Cloudflare 一般般的免費CDN
其他強化 類
- TinyMCE Advanced 加強所見即所得編輯介面
- Easing Slider 有些客戶對於輪播圖希望有其他選項時可以使用這款,在開發上的組合也滿棒的
- Add Admin JavaScript 以類權限部分,第一層客製化使用第一、二款外掛沒問題,如要針對功能內頁內的項目修正,除了直接 Hard Code 就是使用 JavaScript 來修正顯示
- Add Admin CSS 同上的處理外掛
- Breadcrumb NavXT 很強大的麵包屑管理工具,通常用來藏一些不該出現的集合頁連結
SEO 類
- Yoast SEO 功能強大、適合進階
- All in One SEO Pack 功能算強、簡單適合客戶
進階 類
- Shortcodes Ultimate 不同於購買的主題樣板,這外掛提供一些開源實用的短碼(shortcode)可以為進階使用者強化多樣性
- WPML 多國語言的強大外掛,但網站效能會因為他的各種強大功能給導致速度變慢,需搭配伺服器部分評估
- Safe Redirect Manager 雖然轉址這件事我都建議從伺服器上下手,但如果碰到無權限的狀況下,這工具就有不少幫助了
- Transients Manager 管理背景執行程序的好幫手,在網站覺得慢的時候使用它來清理一下
- Heartbeat Control 同上為優化外掛,管理 WordPress AJAX 發生的行為,過多的 AJAX 發生會導致網站執行效率變得很差,相關資訊可以點此參考
- Core Control 管理 WordPress 核心 HTTP 模組 與其他功能的好工具
- Disable All WordPress Updates 當客戶屬於非使用手動安裝的WordPress架構,通常會有個隱藏危險:
自動更新
,開發的網站如有版本相容問題就必須使用這工具,改為手動更新 - Easy Table of Contents(Table of Contents Plus 分支) 寫文章自動根據
h1 ~h6
來分段落做章節索引,很棒的免費工具 - Query Monitor 觀察WordPress活動與資料庫行為的除錯優化工具
- Akeeba Backup for WordPress 完成開發後的備份轉移有他簡單不少
其他 類
其實到這個段落,也就是剩下一些比較特殊案例,通常這些都會用另一種外掛的方式:子主題內的 functions.php 來控制,不過根據使用的主題與常用的組合都太特殊,這邊僅列出每次都會使用的部分!
再來還有 wp-config.php
內會改到的一些控制項 define('WP_MEMORY_LIMIT', '256M');
提升WordPress能夠使用的記憶體資源(常會是購物車或是內建縮圖機制吃資源的主題),可以參考這裡
define('FS_METHOD', 'direct');
修正安裝外掛權限問題,如無法修正資料目錄權限時才使用,但這問題還是從伺服器端下手還是比較好
define('WP_POST_REVISIONS', 3);
限制3個文章版本存取,若改成
false
則是取消版本管理功能
結語
本篇文章內容還會有根據之後的使用案例而修正,但不會特別去翻出來這篇修改(除非真的有閒XD),更新主要會是在 Github 上~
有興趣或是有想法都歡迎一起來討論!(本篇下方留言或是開個issue)
常常看到:比如:後面 的數字,我知道好像是先後的意思,但有看沒有懂 呵‧
add_filter( ‘amp_post_template_metadata’, ‘xyz_amp_modify_json_metadata’, 10, 2 );
//10,2是指
add_filter(‘style_loader_src’, ‘remove_version_query’, 999);
//999又指
參考 add_filter 的文件: https://developer.wordpress.org/reference/functions/add_filter/
其中數字為後面兩個參數,一個為權重代表執行先後順序,後一個是參數個數,就是被當作帶入函式中執行的參數個數。
所以第一個 10,2 就是 預設的權重10以及2個帶入給「xyz_amp_modify_json_metadata」這函式的參數
依此類推,第二個 999 其實是 權重 999,不帶入那個參數個數的話就是預設1,權重部分越小越先執行。
Contact Form DB 進去是:
contact-form-7-to-database-extension
「這個外掛已關閉,且不再提供下載。」
他們改到 GitHub 上面去了~ 參考: https://github.com/mdsimpson/contact-form-7-to-database-extension/releases/