WordPress堂堂邁入37%,但 … ?

就在這個月初,根據w3techs的資料,WordPress在整個web的CMS佔有率堂堂邁入37%,今天更邁入37.3%,可喜可樂,可喜可樂

但個人覺得上面這張圖真正值得注意的不是WordPress,而是打倒Joomla成為第二名的Shopify。

它既不是開源軟體,也不是general purpose CMS,作為一個單純電商的平台,它從去年7月的1.6%,竟然以急起直追之勢成長足足1.5倍打倒Joomla;而且按照這個速度,除非Shopify突然捲入什麼致命的政治醜聞,差距在幾年內恐怕只會愈拉愈大。

這一方面反映了個人化的電子商務市場之大,一方面反映了老掉牙的「do one thing and do one thing well」可以是很強大的:Shopify提供的功能恐怕還不到WordPress.com所有功能的1%,但他們的事業體是我們的好幾倍大。這也是為什麼我一有機會就在公司內喊著要砍東西而非一直加東西,但短時間內看來我們還是會往繼續加的路線走就是了。

用nginx + docker配置多個WordPress站的基本設定

前幾天和幾位朋友聊到WordPress測試環境的配置。有時候為了測試更貼近實際使用狀況,單靠ChassisVVV的開發環境還遠遠不夠,還需要實際將功能上到有公開網域的WordPress站上才行。這時我比較常用的方法是直接靠nginx做reverse proxy將某個子網域對應到一個WordPress Docker容器,這樣既不用擔心測試中污染環境,從配置到銷毀都快速又乾淨。例如https://jptest.southp.dev/就是我拿來測試Jetpack用的(空空的,沒啥好看的啦)。

因為我只是自己測試用的,所以一直以來我都只用一些很基本的手法來做這件事,沒想聊一聊發現好幾個人都跟我一樣,不需要用到這麼多複雜的套件,只想要非常簡單的方法就好,所以寫這篇文章簡述一下。

繼續閱讀 “用nginx + docker配置多個WordPress站的基本設定"

關於燒燙燙的Calypso離線開發模式

就在上上週Dennis Snell發佈了Calypso離線開發模式的最後一個pull request,詳細使用說明請服用README,概念大概是這樣:

  1. 啟動API回應錄製
  2. 開始這樣那樣玩弄各種等一下離線開發會用到的功能
  3. 啟動API回應錄像回放

之後calypso就不會真的發送任何API requests,而是從之前的回應錄像中取用預存的回應,如果不存在,就會像是一般API request失敗那樣。我不太確定這種模式有沒有標準用語,不過我們目前是把這叫Priming。目前整體差不多是在MVP,步驟繁瑣,但咬著牙屁股一夾走完一趟,就可以開開心心離線閉關去。

在開發初期有跟Dennis稍微聊過他打算怎麼做這一塊,他說他希望能從redux middleware來處理。由於Calypso是個行之有年的專案了,要從這角度下去幹需要非常多的重構,我當下覺得找幾個人全職在做大概也要個半年吧 … 沒想到這傢伙兼職著做也是半年就做完了,實在佩服。

繼續閱讀 “關於燒燙燙的Calypso離線開發模式"

窮人Stack: github page + WordPress.com

前陣子因著自己的需要,做了這個『寶咖咖搜尋器』:

demo-bao.gif

如果你跟我一樣看房看了數年仍是無殼蝸牛,大概一眼就看懂這在做什麼了;如果看不懂,恭喜!你的人生還粉粉嫩嫩、閃閃動人。不過請放心,本篇跟這些黑漆抹烏的完全無關,只著墨在tech stack上。有興趣了解背後悶到出汗的故事者,可以參閱這篇ptt發布文

這個專案不大,但考量到平日龐大的工作量加上顧小孩,我能用的時間既零碎又少,能承受的維護成本非常低,所以最好不用自己host,也不需要我花太多力氣在null exception之類的蠢bug。最後的結論就是:

  • Backend: WordPress.com
  • Frontend host: Github page
  • Frontend development: elm

繼續閱讀 “窮人Stack: github page + WordPress.com"

從WordPress REST API到WordPress Compatible

去年底WordPress 4.7熱鬧登場,在諸多熱辣辣的新功能中,要算將WP REST API納入核心使得人人有REST API用,影響最為深遠了。這代表往後任何人只要實作了與此API溝通的app,自動就有像天上星星那麼多的WordPress網站是你的潛在用戶;討厭php嗎?理論上你可以用任何你喜歡的toolchain實作這個API,那些透過此API與WordPress網站溝通的app,自然而然就能用在你的網站上。(不過後者恐怕還要等使用者認證、授權等API穩定後才較實際)

其實這不是什麼新概念,所謂interface as contract的概念早在web前就有了,令人想哼起經典老歌:Everything Old is New Again:

之所以放在WordPress上好像鑲金了,主要還是『像星星這麼多』這件事,造成它不容忽視的影響力。看看那個知名的content injection漏洞吧!甫一露出就十幾萬網站爆炸呢 ^.<

繼續閱讀 “從WordPress REST API到WordPress Compatible"