【问题标题】:wp-load.php & require_once, in an ajax callwp-load.php & require_once,在 ajax 调用中
【发布时间】:2013-01-11 04:35:04
【问题描述】:

我正在开发一个 WP 插件。

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

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

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

下面是我的问题:

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

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

谢谢!

【问题讨论】:

    标签: ajax wordpress require-once


    【解决方案1】:

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

    【讨论】:

    • 问题是它不是一个个人的 ajax 插件,实际上是 Fine Uploader,这太复杂了,无法重建。
    【解决方案2】:

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

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

    include_once 可用于可能存在相同文件的情况 在特定的执行过程中多次包含和评估 一个脚本,所以在这种情况下它可能有助于避免诸如函数之类的问题 重新定义、变量值重新赋值等

    而且由于 PHP 脚本只在请求时运行,所以您所描述的正是它的发生方式。

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

    【讨论】:

    • 您的回答让我有点困惑(我认为,由于我的措辞不佳)。所以在使用 AJAX 引用时,使用 require_once 实际上会有所不同。端服务器文件?或者如果我使用 require 和 require_once 没有区别吗?
    • 所以你担心如果你使用require会报错?在你的情况下,它可能没有什么不同。一般来说,我总是使用require_once,所以我不必担心类似的问题。
    • 啊,明白了。我不担心错误,我只是好奇。本质上,我只是想尽可能地优化它,看起来我的方式应该没问题。谢谢!
    猜你喜欢
    • 2012-12-01
    • 2014-09-14
    • 2018-12-17
    • 2015-09-21
    • 2016-09-17
    • 2018-09-03
    • 1970-01-01
    • 2017-05-30
    • 2019-07-22
    相关资源
    最近更新 更多