我正在编写一个小型WordPress数据同步插件,旨在同步两个站点之间的某些记录。在一个站点上输入新数据项时,该数据项的JSON编码版本将发布到另一个站点上的URL,然后将其摘要并将其保存到本地数据库。
我发现很难找出我应该发布JSON数据的URL,以便它进入另一端的插件。或者我是否应该重用admin_ajax,即使这是服务器到服务器而不是浏览器到服务器。
很高兴地假设这两个站点都在运行WordPress 3.3 / 3.4。
我花了相当长的时间谷歌搜索没有结果,这可能只是我正在寻找错误的术语。
例如,我可能会将插件的发送副本发布到http://www.example.com/wp-content/plugins/datasyncer/incoming.php这样的网址 - 但是更短的网址或更智能的方式会很棒。虽然我可以通过包含../../../wp-load.php来轻松地使这个URL工作,但我不愿意这样做,因为它会在某些网站上破坏,并且在插件中被认为是不良实践。< / p>
我正在使用wp_remote_post()来发布到URL部分,问题是要发布到哪个URL,而不是如何发布。
如果有人有任何想法可以帮助我,我会编辑这个并更正术语!提前谢谢!
答案 0 :(得分:1)
您可以在任何地方张贴(当然,在正面,而不是在管理方面)。您甚至可以发布到主页。只要确保你没有发布任何与wordpress核心冲突的数据。例如:name,post,p都是保留的。 为所有帖子变量添加前缀“myplugin_name”没关系,“name”不是。 然后在您的插件代码中添加一个条件来检查是否发布了某些内容:
if(isset($_POST["myplugin_remote_data"])) {
// check if data was indeed sent by your server. use some api key etc
// save the data
// echo some response telling if data was posted or not. anything you want.
die(); // no need to show the page
}