Creare un Endpoint personalizzato con WordPress
Nozioni di base
Vuoi aggiungere endpoint personalizzati all'API?
Iniziamo con una semplice funzione simile a questa:
<?php /** * Grab latest post title by an author! * * @param array $data Options for the function. * @return string|null Post title for the latest,? * or null if none. */ function my_awesome_func( $data ) { $result = array( 'id' => $data['id'] ); $response = new WP_REST_Response( $result ); $response->set_status( 200 ); return $response; }
Per renderlo disponibile tramite l'API, dobbiamo registrare un percorso. Questo dice all'API di rispondere a una determinata richiesta con la nostra funzione.
Lo facciamo attraverso una funzione chiamata register_rest_route, che dovrebbe essere chiamata in una richiamata su rest_api_init per evitare di fare lavoro extra quando l'API non è caricata.
Dobbiamo passare tre cose a register_rest_route: namespace, il percorso che vogliamo e le opzioni.
Torneremo tra un po' sullo spazio dei nomi, ma per ora scegliamo "myplugin/v1". Faremo in modo che il percorso corrispondaa qualsiasi cosa con "/author/{id}", dove {id} è un numero intero.
<?php add_action( 'rest_api_init', function () { register_rest_route( 'myplugin/v1', '/author/(?P<id>\d+)', array( 'methods' => 'GET', 'callback' => 'my_awesome_func', ) ); } );
In questo momento, stiamo registrando solo l'unico endpoint per il percorso. Il termine "route" si riferisce all'URL, mentre "endpoint" si riferisce alla funzione sottostante che corrisponde a un metodo ea un URL.
Ad esempio, se il dominio del tuo sito è example.com e hai mantenuto il percorso API di "wp-json", l'URL completo sarà http://example.com/wp-json/myplugin/v1/author/(? P\d+)
fonte: