走進wordpressdo_action函式
再看do_action函式。位於plugin.php352行。我把原始碼放在西街口這裡,略去了其它輔助處理的語句。
如下:
function do_action($tag, $arg = ``) { ++$wp_actions[$tag]; //計數器加1,did_action中用到 do { foreach ( (array) current($wp_filter[$tag]) as $the_ ) if ( !is_null($the_[`function`]) ) call_user_func_array($the_[`function`], array_slice($args, 0, (int) $the_[`accepted_args`])); } while ( next($wp_filter[$tag]) !== false ); array_pop($wp_current_filter); }
可以看出,主要是個do-while迴圈,其中涉及了兩個標準函式:
current 是php標準函式,返回陣列當前元素。
call_user_func_array是php標準函式,執行使用者自定義的函式,第一個引數是函式名,第二個是自定義函式的引數陣列。
這樣do_action函式一目瞭然,首先計數器加1,然後執行迴圈。
迴圈體中,執行名字儲存於全域性陣列$wp_filter的自定義函式。
關於$wp_filter,$wp_current_filter是什麼,馬上講到。
本文轉自黃聰部落格園部落格,原文連結:http://www.cnblogs.com/huangcong/p/4741050.html如需轉載請自行聯絡原作者
相關文章
- [] == ![],走進==隱式轉換的世界
- Python 函式進階-遞迴函式Python函式遞迴
- Python 函式進階-高階函式Python函式
- 函式的進階函式
- 走進前端的過程--方向式學習前端
- 走進 phantomjs 嵌入式測試JS
- 走進JavaJava
- JavaScript進階之函式JavaScript函式
- JavaScript進階系列01,函式的宣告,函式引數,函式閉包JavaScript函式
- [分散式][zookeeper]--一起走進動物園管理員分散式
- 測開之函式進階· 第2篇《純函式》函式
- 測開之函式進階· 第4篇《匿名函式》函式
- 測開之函式進階· 第5篇《偏函式》函式
- 走進Oracle世界Oracle
- 【RabbitMQ】走進RabbitMQMQ
- Python函式的進階Python函式
- day 10 函式的進階函式
- 第4天,函式進階函式
- 函式進階應用3函式
- 測開之函式進階· 第1篇《遞迴函式》函式遞迴
- Google Glass帶你走進可穿戴式智慧裝置時代Go
- 走進 JDK 之 IntegerJDK
- 走進 JDK 之 BooleanJDKBoolean
- 走進 JDK 之 FloatJDK
- 走進 JDK 之 LongJDK
- 走進 JDK 之 EnumJDK
- 走進springbootSpring Boot
- 帶你走進 RedisRedis
- 走進mysql基礎MySql
- Python進階07 函式物件Python函式物件
- Python 函式進階-迭代器Python函式
- pytest進階之fixture函式函式
- 前端進階-ES6函式前端函式
- 前端進階-執行時函式前端函式
- 博弈論進階之SG函式函式
- 深入理解javascript函式進階系列第四篇——惰性函式JavaScript函式
- 09-Python之路---函式進階Python函式
- 使用 Python 函式進行模組化Python函式