為什麼你不該使用WordPress Plugins?
| 2012/03/30 | 1 則迴響
你也許常聽到有人說:我要幫我的WP網站更新一些功能,但我不使用任何 Plugins。
相信很多人一開始使用WordPress時,也會這樣想:WordPress應該包含所有功能,為什麼我非得去使用Plugins來加入一些常見的功能?為何我需要去安裝Plugins來抵擋垃圾留言(spam)? 為何我需要額外去安裝SEO套件?為何WordPress不一開始就把這些好用的功能都收錄進來?
當這些人用了WP一陣子後就懂了,因為我們不需要世界上最大的瑞士刀。上圖的瑞士刀有85個用途,但一般人根本不會想用它,在靈巧及功能性上它都已經失去了最佳的平衡。
所以當我聽到有人說「我要做這做那、改東改西,但不使用Plugins…」我都忍不住去想這整件事根本是錯的,於是我問「為什麼不用Plugins?」,他們給了我一些神奇的原因,但我仍然堅持我的信仰:沒有工具是絕對需要被搞成 All-in-one,而且如果我把客製功能hard code的愈多,以後它將會愈難以更新或昇級。
來瞧瞧有哪些不願使用plugin的原因:
Plugins 不屬於「核心」的一部份,所以它不太可靠。
不意外,應該很多人有這樣的疑問。的確,WordPress打造了一個很棒的核心,所以我們可以透過Hook機制來實行我們需要的功能,如果你覺得WP核心是可靠的,那Hook本身也值得被信任,Plugins的運作應該也是可靠的,所以真正的恐懼是:
Plugins 的作者可能會消失
我們都知道 WordPress Plugins 開發者很多都消失了XD,有些開發者甚至還有參與核心的開發。是的,作者可能消失,但如果你把WP Plugins當成所謂的軟體供應/支援商,那顯然是很危險的,你不該如此。
讓我們看看HP平板電腦停產的例子,HP是個公認可靠又知名的公司,但總是沒人知道未來會發生什麼事。一間實體的大公司都可能無預警的關上它的大門,一支WP Plugin停止更新或作者突然消失,大概也不足為奇了。所以也許你也許真正想說的是:
Plugins不安全
我想知道上次你為你的WordPress網站進行全面的安全性檢驗是什麼時候?注意,我不是說plugins沒有安全性上的問題,但如果你有在運行你自己的安全性檢驗,而且安全性一直是你最關心也最害怕的一環,那你應該平等的一併測試整個WordPress核心、佈景主題及所有plugins的安全性。
所以如果有個 plugin你真的很想要,你應該review它的原始碼,而不是閉著眼睛去使用,這也才是open source最具意義的價值。我們打開plugin的原始碼,也許看見base64()或者get()呼叫莫名其妙的東西,我們就能立刻知道它夠不夠安全,進而去修復或回報給org。
但也許還有一些人還是覺得:
Plugins 還是比較不可靠
你也許又會說「路人甲的程式碼就是不可靠」。是的,沒有任何東西是完美的。核心也是另一群陌生人寫的,而且核心也是需要歷經很多人的測試 (如果你也有架WP,你也正在參與可靠性的測試),即便有這麼多人在測試,不免還是有很多bug正在待解中 (我上週才剛發現2個官方證實的bug,只能workaround)。
所以也許你真正想說的是:
我自幹做出來的WP網站,那樣的程式碼才會「一碼永留傳」!
如果你不用plugins,選擇自幹,那有兩條路可以選擇:
1. 改核心
2. 改functions.php
如果你改核心,等於你的網站永遠陷入「自我手動更新」模式,這表示:永不能使用自動更新,必須親自review所有程式。如果你改的是functions.php,那比較好,畢竟它跟寫plugins的主要差別,只在於放置的目錄不同而已。把code放在functions.php,代表這個功能只能存在這個佈景裡,失去了重覆利用的好處。
所以,就他X的用那該死的plugin吧!
難道任何情況都適合使用 Plugin嗎?當然不。
1. 如果沒有好的理由去使用plugin,就別用。
2. 如果它是多餘的,就別用。
3. 如果你正在練習寫code,就別用。
還有什麼使用Plugin可能會有的壞處嗎?
也許你會想到效能(performance)吧?的確有可能影響,但你自幹寫出來的code也可能有效能問題。使用正確的方法來撰寫plugins可以有效提昇網站的效能 (寬義來說,這也是WP核心的一環:D),例如只在需要的時候才載入你寫的Hook Function (如只該出現在後台的就記得用is_admin),或者把你的plugin主檔寫成loader。在處理佈景時,要達成某種效果雖然有很多種方法,但請儘量找到最正確的用法。(例如:別以為 the_content() 跟 echo $post->post_content; 是同一件事。)
還有最重要的:儘可能減少資料庫存取。
關於plugin載入效能的改善可參考這篇:
http://www.dev4press.com/2011/blog/benchmark/measuring-impact-of-plugins-on-wordpress-loading/
本篇大部份內容改寫自:
http://tech.ipstenu.org/2012/why-you-shouldnt-use-plugins/
標籤:WordPress, WordPress外掛, 網站設計
本文作者是Audi Lu
1 則留言
一位不會寫程式的朋友,用WP幫我開發了下面這個網站:
tw.104bid.website
但是,在我想要讓網站更為實用之時,她已無能為力了!
不知道,我是否能夠用電話向您請教一下有關的意見(或者是做成為收費的專案)?