如何定义用于REST控制器的Wordpress全局变量?

时间:2017-08-12 18:57:00

标签: wordpress wordpress-rest-api

我正在通过编写Controller class来扩展WP REST API。

我正在尝试从文件中读取此类的配置,例如:

{
    "base-namespace": "myapi",
    "version": "v1",
    "resource": "things"
}

这将允许我保持服务器和客户端同步,因为它们都使用相同的配置文件。

但是,我不希望WP为它所服务的每个请求继续读取此文件...目前,如果我从插件文件中的任何位置(或其任何所需文件 - 包括Controller定义)读取此文件,如果我也echo在我正在阅读的地方,我看到它总是为每个请求传递一些代码(包括读数)。

我想我需要在插件本身之外的某处读取此文件 - 将其设置为全局,然后在实例化Controller时访问它。

我是WP的新手 - 这是第一次涉足它。这个全局变量定义应该在哪里执行,它只执行一次?

注意:

  • 我尝试在我的插件中使用require_once来要求一个用于执行文件读取的配置文件。我在那里放了echo语句,它显示每个请求都执行该文件(尽管require_once)。
  • 我还尝试用if(!isset($my_global_var)语句包装文件。但是在echo语句中添加if语句表明这个全局变量总是在每个服务请求中都没有设置...显然这需要进入某种WP启动文件,该文件只执行一次。

谢谢。

1 个答案:

答案 0 :(得分:1)

将配置数据存储为.php文件中的PHP数组,然后使用PHP include语句将其包含在内。高级PHP引擎解析PHP源一次并缓存脚本的编译表示,以便它不必每次都重新解析PHP源。因此,如果您的数据位于PHP源文件中,则它将保存在PHP的引擎编译脚本缓存中。

当然,如果您的客户端是非PHP的,则需要使用代码来解析PHP数组。