我正在为WordPress创建一个新插件,要求外部网站使用网络服务。例如,如果有两个站点A和B,则插件将安装在A上,所有相关数据都存储在站点A的WPDB中。站点B将使用Web服务从站点A获取XML格式的数据。
这可能吗?什么是最安全的解决方法?
我可以在我的插件中将Web服务作为PHP文件,但这将要求外部域命中: http://www.domain.com/wp-content/plugins/plugin-folder/web-service.php。暴露Wordpress设置的深度似乎是个坏主意。
我可以让我的插件在root中创建一些文件,以便web服务调用到http://www.domain.com/web-service.php,但是我的插件安装在插件目录之外的东西似乎也是一种不好的做法。
另一个想法:我可以将文件放在我的插件文件夹中,但是在.htaccess中添加一行以使http://www.domain.com/web-service.php转到它吗?
有没有人对最好,最安全的方式有任何想法?
答案 0 :(得分:2)
我会在.htaccess中设置一个重写规则,让用户在不知道它的位置的情况下访问你的代码。我不认为有一种简单的方法可以向Wordpress前端控制器添加特定路由,但您可以看到是否有操作或过滤器来执行此操作。
编辑:
以下是添加路线https://wordpress.stackexchange.com/questions/26388/how-to-create-custom-url-routes
的帖子答案 1 :(得分:0)
在我个人看来,如果我安装了一个WP插件并且你在我的根目录中创建了一个新文件,我会一起删除该文件或插件。我也会尽量避免添加.htaccess文件。这再次让我怀疑。
我要做的是,安装ping网站B(您的网站)上的文件,该文件捕获网站A(他们的网站)上的插件文件夹的位置,因为WP可能安装在目录内而不是安装在根。然后你知道“web-service.php”文件的位置。然后你可以随时点击该文件。没有理由使用.htaccess规则或创建新文件。
只是一个建议:)