2014-07-16 136 views
0

我遇到問題add_menu_page()。我的頁面輸出沒有顯示,它應該被我得到一個錯誤:WordPress的add_menu_page功能故障

Warning: call_user_func_array() expects parameter 1 to be a valid callback, first array member is not a valid class name or object in /home/content/45/8909445/html/clients/ereading/wp-includes/plugin.php on line 470

我知道ADD_ACTION()使用PHP的原生call_user_func_array()所以我想這可能是與它。下面是我創建的菜單頁面和頁面輸出功能的代碼(現在我只是想回應一些文本):

public static function register_wpidSwiper_menu_page() { 
    add_menu_page('iDangerous Swiper Slides', 'Homepage Slides', 'manage_options', 
      'wp_idangerous_swiper', array($this, 'admin_page_output'), 
      plugins_url('wp-idangerous-swiper/img/swiper-icon.png')); 
} 

public function admin_page_output() { 
    echo "Hello iDangerous Swiper"; 
} 

我在我的類的構造函數調用此:

public function __construct() { 
    add_action('admin_menu', array($this, 'register_wpidSwiper_menu_page')); 
} 

我的菜單項目出現在我的自定義圖標的側面菜單中,但是當我點擊進入頁面時,頁面顯示我上面提到的錯誤,而不是我在我的admin_page_output()方法中回顯的字符串。

任何人都知道這對我來說會出錯嗎?

謝謝! Isaac

回答

1

您不能在中使用$this靜態上下文。

public static function 

在一個靜態函數中,$this不存在。嘗試擺脫static,我不是一個真正的wordpress人,但我的猜測是,它會解決它。

+0

啊,沒有想到這一點。那做了訣竅thnx。奇怪的是,該功能運行。 – codeguerrilla