Wordpress符号在称为AJAX脚本的代理中未定义


Wordpress symbols undefined in proxy called AJAX script

我正在努力在我的Wordpress插件中填充ExtJS数据网格。我对web编程完全陌生,所以下面的问题可能是一个愚蠢的问题。

我设法编写了一个PHP脚本,该脚本提供了一个带有嵌入式Java script代码的网页,该代码在前端创建了ExtJS数据网格,并成功地使用ExtJS代理,模型和数据存储查询数据。该json代理调用单独的getdata.php脚本(通过其URL),该脚本查询数据库,将检索到的数据转换为json格式并通过echo返回它们。这工作。

现在我打算在getdata.php脚本中添加一些调试代码。不幸的是,当使用if (WP_DEBUG) {}时,我得到一个错误告诉我Use of undefined constant WP_DEBUG(我通过调试网络访问发现,因为数据库脚本由代理调用并且不产生可见的输出)。在其他脚本中,我可以毫无问题地使用WP_DEBUG符号。

知道为什么我的getdata.php不知道WP_DEBUG而插件的其他脚本吗?

更新:似乎所有的Wordpress符号都是未知的在getdata.php.

UPDATE2: AJAX脚本需要使用特殊的WordPress方法来调用。

如果你已经按照Danny的建议做了,但它不起作用,我想这可能会引发一个问题:这个页面本身是作为一个插件完成的,还是从wordpress本身生成的,或者它只是你写的一个php页面,碰巧在同一个文件夹/服务器中,但它没有包含或调用wordpress。如果是后者,请确保包含wp-load,如下所示:

include('wp-load.php');

好的。我想我找到了正确的方法,至少在理论上是这样。结合http://codex.wordpress.org/AJAX_in_Plugins和http://www.wopsta.de/using-an-ext-js-datagrid-with-ajax-in-the-wordpress-administration-panel/的信息。

然而,当测试该方法时,有些事情出错了…没有调用AJAX查询钩子。为了避免混淆,我把这个问题移到另一个问题中。