I am in the process of writing a small WordPress data sync plugin that is intended to sync some records between two sites. When a new data item is entered on one site, a JSON-encoded version of that data item is posted to a URL on the other site which then digests it and saves it to a local database.
I’m finding it really hard to work out what URL I should be posting the JSON data to so that it gets into the plugin on the other end. Or whether I should be reusing admin_ajax, even though this is server-to-server not browser-to-server.
Happy to assume that both sites are running WordPress 3.3/3.4.
I’ve spent quite some considerable time googling without results, which may simply be that I’m looking for the wrong terminology.
For instance, I might get the sending copy of the plugin to post to a URL such as http://www.example.com/wp-content/plugins/datasyncer/incoming.php – but a shorter URL or a smarter way to do it would be great. While I could make this URL work pretty easily by including ../../../wp-load.php I’m reluctant to do that as that will break on some sites, and is considered Bad Practice in a plugin.
I’m using wp_remote_post() to do the post to URL part, the problem is which URL to post to, not how to post.
I’ll edit this and correct terminology if anyone has any ideas that help! Thanks in advance!
You can post anywhere you want (in front side, and not on admin side, of course). You can even post to the home page. Just make sure that you don’t post any data which conflicts with wordpress core. For example: name, post, p are all reserved.
Add a prefix to all your post variables “myplugin_name” is ok, “name” is not.
Then in your plugin code add a condition to check if something was posted: