致命错误:未捕获错误:调用未定义的函数GET_OPTION()

时间:2017-07-31 作者:David Cring

我想解决这个问题,因为我正在将ajax请求从插件页面发送到另一个文件verifyapi。php,但它给了我如下错误。

Fatal error: Uncaught Error: Call to undefined function get_option() in verifyapi.php
但在添加以下行时

require_once(\'../../../../../wp-config.php\');
在verifyapi之上。php它工作得很好,但我不想要它,因为WordPress不允许您在函数中添加任何WordPress核心文件,所以是否有其他方法可以做到这一点。

这是管理ui的js代码。将数据发送到verifyapi的php页面。然后从中获得响应。

function savedata()
{
  var keyflag=document.getElementById("key_box_flag").value;
  if(keyflag=1)
  {
    var key=document.getElementById("key_box").value;
  jQuery.ajax({
   url:"<?php echo plugins_url( \'/\', __FILE__ ); ?>verifyapi.php",
   type:"POST",
   async:true,
   data:{"key":key,
       "save":1 },
   success: function(data)
   {
    location.reload();
   }

  });

  }
  else {

  }
}

1 个回复
最合适的回答,由SO网友:Johansson 整理而成

与其这样做,只需在verifyapi.php 然后使用以下命令将其包含在插件的主文件中:

require_once(\'verifyapi.php\');
这样,您就可以访问verifyapi.php 文件

现在,在你的verifyapi.php 文件,创建一个Ajax处理程序(但我建议使用REST端点):

add_action(\'wp_ajax_your_\', \'handler_function\');
add_action(\'wp_ajax_nopriv_your_handler_name\', \'handler_function\');
function photogram_ajax_handler() {
    // Your verification here
}
到目前为止还不错。最后一步是将URL更改为admin-ajax.php. 为此,请使用以下方法:

   ...
   url:"<?php echo site_url(\'/wp-admin/admin-ajax.php\'); ?>",
   ...
一切就绪。

结束