简体   繁体   中英

Wordpress custom REST API

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?

Eg:

/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 permastruct that 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 (eg 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

register_rest_route ( string $namespace, string $route, array $args = array(), bool $override = false )

function to register a rest api in wordpress.

you can look in to this sample snippet http://wiki.workassis.com/wordpress-create-rest-api/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM