2

我正在开发一个 WP 插件。

目前,我正在使用 jquery 对插件文件夹中的独立 php 文件进行 ajax 调用。
假设这个文件名为test.php

在此调用之前未加载该文件,因此该文件中没有本机 wordpress 函数。

结果,我require_once('wp.load');在test.php中。

以下是我的问题:

  1. 我需要 wordpress 的唯一功能是 $wpdb->insert。有比 wp-load 更好的功能吗?不包括这么多的东西,因为我只需要这个功能!

  2. 我了解 require_once 仅在尚未加载文件的情况下才加载文件。也许我忽略了这种情况,但是这如何与 ajax 一起工作?如果有“成功”响应,test.php 是否关闭,因此当再次调用它时,它会wp-load.php再次加载吗?

谢谢!

4

2 回答 2

2

如果有“成功”响应,test.php 是否关闭,因此当再次调用它时,它会再次加载 wp-load.php 吗?

确切地。require_once(or )背后的概念include_once是确保您不会同时将相同的函数、类和变量重新加载到当前正在运行的相同PHP 代码中:

include_once可用于在特定脚本执行期间可能多次包含和评估同一文件的情况,因此在这种情况下,它可能有助于避免诸如函数重新定义、变量值重新分配等问题。

而且由于 PHP 脚本仅应请求运行,因此您所描述的正是它会如何发生。

也就是说,我不会过度考虑wp.load每次需要时加载整体的概念。我怀疑它会导致性能下降,甚至会引起注意。

于 2013-01-27T20:33:28.043 回答
0

你应该考虑按照这个方法来编写一个 Ajax 驱动的插件。通常不需要创建单独的 PHP 文件并将 WordPress 核心加载到该文件中。仔细阅读,您会发现,这相对容易完成,并且比独立的 PHP 文件更灵活......

于 2013-01-27T21:21:04.017 回答