我想創建一個wordpress插件,我發現一個使用oops概念的插件,我的問題是爲什麼add_action函數中的第二個參數是陣列代替函數名wordpress:add_action:爲什麼第二個參數是一個數組而不是函數名
ADD_ACTION( 'admin_menu',陣列(& $此, 'my_menu'));
my_menu是在同一個類中的函數,請幫我
感謝
我想創建一個wordpress插件,我發現一個使用oops概念的插件,我的問題是爲什麼add_action函數中的第二個參數是陣列代替函數名wordpress:add_action:爲什麼第二個參數是一個數組而不是函數名
ADD_ACTION( 'admin_menu',陣列(& $此, 'my_menu'));
my_menu是在同一個類中的函數,請幫我
感謝
因爲第二個參數必須是一個callback。 (並且add_action
內部使用call_user_func_array
)。
對於函數,我們可以將它的名字作爲字符串傳遞,但我們不能用對象方法來做到這一點,我們可以嗎?
因此,一個數組傳遞2個要素,第一對象和第二的方法來調用: -
array($object, 'method')
哦,你可以安全地刪除無用「&」,PHP4日子現在都沒有了。
@Thomas John,你對add_action中的第二個參數也是正確的,在wordpress org中沒有提到任何關於這個的東西,所以現在讓我知道你,我們可以將數組作爲第二個參數數組($ this,'method')。
描述: 當對象創建的類,然後構造函數自動調用和您的操作執行。
WHY它需要 在WordPress如何創建或初始化ADD_ACTION方法的類總之ADD_ACTION參照例如下面的一類檢查
class Myclass{
public function __construct() {
add_action('plugins_loaded', array($this, 'load_plugin_textdomain'));
}
}
引用一個使用類ADD_ACTION()。
嗨 - 感謝您的建議。我幾乎瞭解,但你能幫助這個例子。當我們使用value => key時,我不確定如何引用$ object:add_action('woo_main_before','woo_slider_biz',10,array( 'slide_page'=> 394, 'use_slide_page'=> true )); – raison 2014-10-14 14:07:03
我有一個常量問題,其中$對象的行爲就像我使用$ this一樣,而且我得到一個錯誤,指出使用類add_action()時沒有鉤住方法。我甚至創建了一個新對象,並在add_action之前傳遞它,但仍然無效。 – 2016-04-27 12:12:47