2013-08-17 55 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函数将被调用。