调用未定义的函数add_options_page()

时间:2013-08-17 20:40:32

标签: wordpress wordpress-plugin

我为我的wordpress项目开发了插件。我用5.3 php在我的本地xampp服务器上成功测试了它。然后我用php 5.2将我的项目上传到web主机。我遇到的第一个麻烦是不支持php 5.2中的匿名函数。没问题,我用名字重新声明了所有功能。但后来我得到错误调用未定义的函数add_options_page(),我没有解释。 Plz帮助我们提出建议

我的代码部分:

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());

我认为我的功能有问题,请仔细看看。 我认为php 5.2没有问题,这部分代码也不适用于php 5.3!我的代码有问题

5 个答案:

答案 0 :(得分:7)

我遇到了类似的问题,事实证明我过早地运行了一个功能:

使用admin_init挂钩代替init

希望能帮助别人:D

答案 1 :(得分:0)

这不起作用,因为你没有包含在类中的普通函数,并且因为add_options_page到那时还没有工作,这就是你得到错误的原因。

修复将是在add action调用中使用匿名函数,但因此在php 5.2上不起作用。

长话短说,虽然这是可以修复的,但你不应该首先运行php 5.2。 PHP 5.5已经在开发中,5.3目前是事实上的标准。解决方案是要求您的托管公司将php升级到至少5.3,以便您可以使用匿名函数,并且可以将其挂钩到添加操作调用。

或者,将它全部包装在一个类中,并在admin init函数中创建新类。

答案 2 :(得分:0)

您必须像这样在

中调用admin_menu中的代码
<body lang="zh-hk">
  <div id="container">
    <div id="nav">
      <a href="index.html">Contact</a>
    </div>
    <div id="header">
      <img src="header.jpg" alt="testing" width=100% height=260>
    </div>
    <div id="lcolumn">
      <p><a href="index.html">Chiayi</a>
      </p>
      <p><a href="index.html">From the Airports</a>
      </p>
      <p><a href="index.html">Places</a>
      </p>
      <p><a href="index.html">Food and Drinks</a>
      </p>
      <p><a href="index.html">Bike Trips</a>
      </p>
    </div>
    <div id="rcolumn">
      <h1>Reaching Chiayi City from the Airports by Public Transport</h1>
      <p>Which interational airport will you arrive at?</p>
      <p>&#8226; <a href="#tpe">Taiwan Taoyuan International Airport (TPE)</a>
      </p>
      <p>&#8226; <a href="#rmq">Taichung Airport (RMQ)</a>
      </p>
      <p>&#8226; <a href="#khh">Kaohsiung International Airport (KHH)</a>
      </p>
      <hr>
      <h2 id="tpe">Taiwan Taoyuan International Airport (TPE)</h2>
      <p class="counter">This is counted 1. This is counted 1. This is counted 1. This is counted 1. This is counted 1. This is counted 1. This is counted 1. This is counted 1. This is counted 1. This is counted 1. This is counted 1. This is counted 1. This is counted 1.
        This is counted 1. This is counted 1.</p>
      <p class="counter">This is counted 2.</p>
    </div>
    <div id="footer">
      &#169;2016
    </div>
  </div>
</body>

</html>

答案 3 :(得分:0)

意识到这是一个老问题,这是你的问题:

add_action('admin_menu',mainPage2());

这里调用mainPage2()函数并将该函数的返回值作为参数添加到add_action方法中。

你应该做

add_action('admin_menu', 'mainPage2');

这样,当admin_menu发生时,将调用mainPage2函数。

答案 4 :(得分:-1)

尝试不给标题留出空间: - SubmissionsOfMainPageContactForm