WordPress REST API Custom Endpoint with URL Parameter

前端 未结 2 981
野性不改
野性不改 2020-12-31 10:04

I am trying to create a custom endpoint for the WordPress REST API and pass parameters through the URL.

The endpoint currently is:

/wp-json/v1/products

相关标签:
2条回答
  • 2020-12-31 10:37

    First you need to pass in the namespace to register_rest_route

    Like this

    add_action( 'rest_api_init', function () {
        register_rest_route( 'namespace/v1', '/product/(?P<id>\d+)', array(
            'methods' => 'GET',
            'callback' => 'my_awesome_func',
        ) );
    } );
    

    Your name space namespace/v1 and your route is /product/{id} like this /namespace/v1/product/81838240219

    and now you can use the route inside your function like this

    function my_awesome_func( $data ) {
        $product_ID = $data['id'];
    }
    

    If you need to add options for ex. /namespace/v1/product/81838240219?name=Rob

    and use it inside the function like this

    function my_awesome_func( $data ) {
        $product_ID = $data['id'];
        $name = $data->get_param( 'name' );
    }
    

    The process is very simple but requires you to read this documentation

    0 讨论(0)
  • 2020-12-31 10:39

    I modified the provided answer a little to get my desired endpoint:

    /wp-json/api/v1/product?identifier=81838240219

    add_action( 'rest_api_init', function () {
    register_rest_route( 'api/v1', '/product/', array(
          'methods' => 'GET',
          'callback' => 'ea_get_product_data',
        ) );
    } );
    
    function ea_get_product_data( $data ) {
        $identifier = $data->get_param( 'identifier' );
        return $identifier;
    }
    
    0 讨论(0)
提交回复
热议问题