2013-08-17 45 views
2

我爲我的wordpress項目開發了插件。我用5.3 php在本地xampp服務器上成功測試了它。然後,我將我的項目上傳到了使用PHP 5.2進行的Web託管。我面臨的第一個麻煩是在php 5.2中不支持匿名函數。沒有問題,我重新宣佈了所有名稱的功能。但後來我得到錯誤調用未定義的函數add_options_page(),我countrn't解釋。 PLZ幫我球員與你的意見調用未定義的函數add_options_page()

我的部分代碼:

function mainPage(){ 
     ///some code 
     } 

function mainPage2(){ 

    add_options_page('Submissions of MAIN page contact form', 'Submissions of MAIN page contact form', 'manage_options','ea_submissions2', mainPage()); 

    } 
add_action('admin_menu',mainPage2()); 

我想用我的funcitons不對勁,通過它看看吧。 php 5.2沒有問題,因爲我認爲,這部分代碼也不適用於php 5.3!

+0

您運行的是哪個版本的PHP?什麼版本的WP?如果網站是舊的並且在PHP 4上,那麼您的WP版本是舊的,並且可能不支持add_options_page()函數。 –

+0

wordpress是好的,因爲我說它在php 5.3上運行良好。在與PHP 5.2的Web服務器上,我得到這個錯誤調用未定義的函數add_options_page() – Zheka

+0

我的意思是在你的Web服務器上,而不是你的本地主機。如果你的網絡服務器是5.2,那麼你應該很好。 WP的其餘部分運行嗎?你確定你有一個很好的上傳通過FTP - 有時上傳過程中有些文件丟失/損壞。 –

回答

-1

有毛病我的代碼嘗試沒有在標題給空間: - SubmissionsOfMainPageContactForm

6

我也有類似的問題,原來我運行一個功能太早:

使用admin_init掛鉤,而不是init

希望這可以幫助別人了:d

0

這不工作,因爲你有n個沒有包裝在類中的ormal函數,並且因爲add_options_page在那段時間還沒有工作,所以你會得到這個錯誤。

解決的辦法是在add動作調用中使用匿名函數,但是這對php 5.2不起作用。

很長的故事總結,雖然這是可以修復的,但是你不應該在第一時間運行php 5.2。 PHP 5.5已經在開發中,而5.3現在已經成爲事實標準。一個解決方案是讓您的託管公司升級至少5.3的PHP,以便您可以使用匿名函數,並且可以將其掛接到添加操作調用。

或者,將其全部包裝在一個類中,並在admin init函數中創建新類。

0

你打電話給你的代碼中admin_menu這樣

add_action('admin_menu', array(&$this, 'addWidgetSettingsMenu')); 
0

意識到這是一個老問題,這是你的問題:

add_action('admin_menu',mainPage2()); 

這裏要調用的mainPage2()函數並將該函數的返回值作爲參數添加到add_action方法中。

你應該做

add_action('admin_menu', 'mainPage2'); 

這樣,當發生admin_menu的mainPage2函數將被調用。