带有公共URL的Wordpress Custom插件

时间:2018-04-30 22:39:33

标签: wordpress api

我正在为WordPress编写一个自定义插件,我想公开一个可用作API的URL(只能由我们的某个服务器访问),是否可能?我用谷歌搜索并试图得到一些帮助,但没有成功。

任何建议我该怎么办?

亲切的问候

Sajid

1 个答案:

答案 0 :(得分:0)

这在常规意义上是无法完成的,因为WordPress网站上的PHP不会持续运行,而是由HTTP服务器调用,因此它无法监听连接。但是,您可以使用HTTP 301从URL重定向到WordPress端点。但是,为什么不直接使用WordPress端点?

通过WordPress端点澄清我并不是指现有的WordPress端点,而是可以使用add_action()创建的端点。也可以在WordPress文档树中直接调用PHP脚本。关键点是必须选择URL,以便HTTP服务器将在WordPress文档树中的某个文件上调用PHP,因此URL必须以WordPress HTTP根目录的路径开头,但路径中可以包含更多组件以及查询参数。

使用add_action()创建端点然后直接调用脚本会更容易。如果你使用add_action(),那么WordPress将处理为你设置执行环境,否则你的代码将需要这样做。此外,一些Web托管提供商可能会限制在插件目录中直接执行代码。

事实上,WordPress已经有了这样做的框架。您只需要实现一个AJAX处理程序。当然,来自您服务器的请求不是AJAX请求,但这并不重要。但是,如果您需要身份验证,因为WordPress AJAX处理程序使用cookie身份验证并且不适合服务器到服务器通信,您将需要使用WordPress提供的钩子覆盖默认用户身份验证。

最后,您可以不使用内置的REST API,而不是使用自己的API。 REST API基本上允许您访问存储在MySQL数据库中的对象。您还可以自定义对这些对象的访问权限,即在读取数据库之后和之前处理这些对象中的数据。这里的优点是WordPress为您的服务器提供了一个框架,因此您不必实现所有内容。特别是,它有一个适用于服务器到服务器通信的身份验证框架。