María Sierra
¿Qué son y cómo funcionan los endpoints? en la API
Es una Url que nos permite personalizar y expandir las capacidades de la REST API de Wordpress, esto quiere decir que nos dará una nueva url que nos va a proveer datos personalizados.
Wordpress nos provee una función para generarlo:
- register_rest_route() → Cada endpoint debe ser registrado para empezar a funcionar. Para su registro recibe 3 parámetros
- $namespace → reemplaza el wp-b2 (por defecto de WP), espacio de trabajo para todas nuestras rutas personalizadas.
- $route → el resto de los parámetros que queremos recibir en esa URL.
- $args → Para indicar el método como se pueden conectar a nuestro url y función de callback que procesa la petición y da el retorno de los datos.
- $override → que es opcional, permite definir si la función reemplaza a otras si tiene la misma ruta.
Esta sería la función que registraría nuestra nueva ruta:
add_action( 'rest_api_init', 'novedadesAPI' ); function novedadesAPI() { register_rest_route( 'pg/v1', '/novedades/(?<cantidad>\d+)', [ 'methods' => 'GET', 'callback' => 'pedidoNovedades' ] ); }
Y está la función que trae los datos:
function pedidoNovedades($data) { $args = array( 'post_type' => 'producto', 'posts_per_page' => $data['cantidad'], 'order' => 'ASC', 'orderby' => 'title', ); $novedades = new WP_Query($args); if ($novedades->have_posts( )) { while ($novedades->have_posts()) { $novedades->the_post(); $return[] = array( 'imagen' => get_the_post_thumbnail( get_the_id( ), 'large' ), 'link' => get_the_permalink( ), 'titulo' => get_the_title( ) ); } return $return; } }
