Php 为存储在自定义插件中的函数注册Wordpress REST路由和端点-如何指向现有插件函数和路径
我一直在尝试为自定义插件函数注册REST路由,以使该函数可由javascript调用 示例显示了functions.php(如at)中注册脚本中嵌入的端点函数 但是,我的端点函数已经在自定义插件树中的PHP文件中 因此,我试图:Php 为存储在自定义插件中的函数注册Wordpress REST路由和端点-如何指向现有插件函数和路径,php,wordpress,wordpress-rest-api,wordpress-plugin-creation,Php,Wordpress,Wordpress Rest Api,Wordpress Plugin Creation,我一直在尝试为自定义插件函数注册REST路由,以使该函数可由javascript调用 示例显示了functions.php(如at)中注册脚本中嵌入的端点函数 但是,我的端点函数已经在自定义插件树中的PHP文件中 因此,我试图: 为我的端点注册路由,例如:www.example.com/test/v1/route\u function\u name 将其指向我的自定义函数名,例如name\u of_function 告诉它在哪里可以找到该函数,例如www.example.com/wp con
www.example.com/test/v1/route\u function\u name
name\u of_function
www.example.com/wp content/plugins/custom plugin name/path tree stuff/public/plugin functions controller.php
add_action(
'rest_api_init',
function () {
register_rest_route(
'test/v1',
'/route_function_name',
[
'methods' => 'POST',
'callback' => function (WP_REST_Request $request) {
// Need to somehow insert here a path to my function
name_of_function;
// Reponse is sent back by the function, so need to trap it [
'return-param-1' => $return-param-1,
'return-param-2' => $return-param-2,
'return-param-3' => $return-param-3,
];
},
]
);
}
);
尝试这样做的理由是:
- 我已经有一个JS脚本在运行
- 我需要它来调用我已经编写的PHP函数
- 这很简单:只需将函数的路径编码到JS中
- 然而,我正试图用正确的方法来代替(主要是出于安全原因,但也是为了安抚不合时宜的精神!)
这些假设是否有错误?对于#3,如果它只是一个函数而不是一个类方法,您应该能够调用
require_once WP#u PLUGIN_DIR/自定义插件名称/path-tree-stuff/public/plugin-functions-controller.php'对文件执行code>以使其全局可用。理想情况下,您的REST路由将位于该插件内部,因为一个插件也依赖于另一个插件。这不是一个绝对的要求,但我现在正在一个10年的网站上工作,有很多跨DEP的插件,调试东西是一件非常痛苦的事情。如果它是一个类,它也可以工作,但那是你进入数组风格语法的时候了。谢谢@ChrisHaas,我将把register\u rest\u route
与每个现有函数放在同一个文件中。我目前认为没有必要将它们封装在类中(封装除外),因为函数本身(这里称为“回调”)只是旧的skool过程例程;在OOP模型下,它们没有配置为CRUD函数或类方法语句,并且命名是相当冲突免疫的。然后,我将按照您的建议,在主插件文件中使用上面的require\u一次。