I have been working on a WordPress plugin and I come from a background where I usually write my own REST endpoints (Rails etc). My question is, how do I from a WP plugin create rest url endpoints?
E.g.:
/myplugin/save-tutorial (POST takes JSON and returns JSON)
/myplugin/get-tutorial?id= (GET returns JSON)
How do I create such REST endpoints? I have looked at admin-ajax.php and that seems about right, but still pretty messy. It seems like a simple problem though. I want to process the responses in my-plugin.php.
Thanks in advance!
You should use
add_rewrite_endpoint()
for this purposes. This function creates extra rewrite rules for each of the matching places specified by the provided bitmask. For example:add_rewrite_endpoint( 'json', EP_PERMALINK | EP_PAGES );
will add a new rewrite rule ending with
json(/(.*))?/?$
for every permastructthat describes a permalink (post) or page. This is rewritten to
json=$match
where $match is the part of the URL matched by the endpoint regex (e.g.
foo
in<permalink>/json/foo/
).You can also read this guide
https://make.wordpress.org/plugins/2012/06/07/rewrite-endpoints-api/
You can use
function to register a rest api in wordpress.
you can look in to this sample snippet http://wiki.workassis.com/wordpress-create-rest-api/