本篇文章更新時間:2020/04/21
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
程式撰寫不怕寫錯語法,怕邏輯不正確。寫錯還有解譯器跳出錯誤提示訊息,但邏輯錯造成的問題就比較難解了!
尤其是把程式寫成無窮迴圈,執行時會在一瞬間把系統資源吃光,導致執行錯誤。
WordPress 中模組化了很多東西,從 Actions, Filters 的基礎 Hook 方法到 Shortcode 的短碼方法都是開發上必學的組合技。
先前是在 Shortcode 短碼上遇到:A 短碼中執行同樣的 A 短碼。一但 A 短碼觸發執行,網站就會資源耗盡而掛點。
所以如果要避免這問題發生,記得要加上 has_shortcode 方法來檢查!
而在 Actions 或 Filters 的這種使用情境就要注意是否有在方法內重新呼叫了自己。
剛好看到 How to use update_{$meta_type}_metadata filter to modify meta value 這篇討論,裡面有提到解法。
// Avoid infinite recursion:
remove_filter( current_filter(), __FUNCTION__ );
重複呼叫自己前,先把自己註冊的 Filter 給解註冊即可。 (寫成物件導向方法的不適用,需另外寫過解註冊的方法)
這篇是討論註冊了 update_post_meta
的 Filter 方法後,又希望在那方法裡使用 update_post_meta
更新 meta 值的做法。(有夠繞口)