通过WordPress公开一个Web服务

3
我正在为WordPress创建一个新插件,需要外部网站使用Web服务。例如,如果有两个站点A和B,则插件将安装在A上,并将所有相关数据存储在WordPress数据库中以供站点A使用。站点B将使用Web服务从站点A以XML格式获取数据。
这可能吗?最安全的实现方式是什么?
我可以将Web服务作为我的插件中的PHP文件,但这将要求外部域命中类似于以下内容的东西: http://www.example.com/wp-content/plugins/plugin-folder/web-service.php。 显露WordPress设置的深度似乎不是个好主意。
我可以让我的插件在根目录下创建一些文件,以便Web服务调用将指向http://www.example.com/web-service.php,但让我的插件在插件目录之外安装也似乎是不好的做法。
另一个想法:我能把文件放在我的插件文件夹中,但添加.htaccess文件中的一行,使http://www.example.com/web-service.php去到它吗?
什么是最佳、最安全的方法?
2个回答

2
我会在.htaccess中设置重写规则,让用户无需知道代码所在位置即可访问。我认为没有简单的方法可以向WordPress前端控制器添加特定路由,但您可以查看是否有适用的操作或过滤器来实现这一点。
这里有一篇关于添加路由的文章:如何创建自定义URL路由?

我认为这将完美地运作(一旦我弄清楚如何以我想要的方式重写它)。这似乎是在钩入WordPress的同时保持所有内容在自包含插件文件夹中的最佳方法。谢谢Peter! - skustes

0
在我个人看来,如果我安装了一个WP插件,而你在我的根目录中创建了一个新文件,我要么删除该文件,要么彻底删除该插件。我还会尽量避免添加.htaccess文件,因为这会让我感到怀疑。
我会做的是,在安装时ping一下Site B(您的站点)上的一个文件,该文件捕获Site A(他们的站点)上插件文件夹的位置,因为WP可能安装在目录中而不是根目录中。然后你就知道“web-service.php”文件的位置了。然后你可以随时访问那个文件。没有必要使用.htaccess规则或创建新文件。
只是一个建议 :)

可以向WordPress前端控制器添加路由。 - Peter Wooster
是的,这就是为什么我不想采用在根目录添加文件的方法。我也会怀疑那样做。我认为下面Peter提出的方法是正确的。 - skustes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接