rest api - Can I define multiple callback methods depending on the call method?

He is my current custom API:add_action( 'rest_api_init', function () {register_rest_route('my-projectv1

He is my current custom API:

add_action( 'rest_api_init', function () {
  register_rest_route('my-project/v1/form', '/get', array(
    'methods' => WP_REST_Server::READABLE,
    'callback' => 'get_form'
  ));
});


add_action( 'rest_api_init', function () {
  register_rest_route('my-project/v1/form', '/post', array(
    'methods' => 'POST',
    'callback' => 'post_form'
  ));
});

Here is something I would like to write, but I'm not sure if it is possible. What I'm sure is that this syntax i

add_action( 'rest_api_init', function () {
  register_rest_route('my-project/v1/', '/form',
array(
    'methods' => 'GET',
    'callback' => 'GET_form',
  ), array(
    'methods' => 'POST',
    'callback' => 'post_form',
  ), );
});

He is my current custom API:

add_action( 'rest_api_init', function () {
  register_rest_route('my-project/v1/form', '/get', array(
    'methods' => WP_REST_Server::READABLE,
    'callback' => 'get_form'
  ));
});


add_action( 'rest_api_init', function () {
  register_rest_route('my-project/v1/form', '/post', array(
    'methods' => 'POST',
    'callback' => 'post_form'
  ));
});

Here is something I would like to write, but I'm not sure if it is possible. What I'm sure is that this syntax i

add_action( 'rest_api_init', function () {
  register_rest_route('my-project/v1/', '/form',
array(
    'methods' => 'GET',
    'callback' => 'GET_form',
  ), array(
    'methods' => 'POST',
    'callback' => 'post_form',
  ), );
});
Share Improve this question asked Apr 12, 2019 at 14:34 TTTTTT 3291 gold badge4 silver badges17 bronze badges 4
  • Yes, it's correct syntax. As you can read in codex: $args - Either an array of options for the endpoint, or an array of arrays for multiple methods. – nmr Commented Apr 12, 2019 at 14:45
  • @nmr keep comments for clarifying questions, and post answers as answers, afterall I can't upvote your comment and TTT can't mark it as the answer – Tom J Nowell Commented Apr 12, 2019 at 14:50
  • @TomJNowell OK, it seemed to mee too insignificant to write as an answer. – nmr Commented Apr 12, 2019 at 14:52
  • Sometimes the answer is simple short and wellformed, don't let that discourage you from posting it! – Tom J Nowell Commented Apr 12, 2019 at 14:53
Add a comment  | 

1 Answer 1

Reset to default 3

Check if your code looks like this because in the question you pass each method as separate function arguments (I have overlooked it earlier)

add_action( 'rest_api_init', function () {

    register_rest_route('my-project/v1/', '/form', 
        array(
            array('methods' => 'GET',
                 'callback' => 'GET_form',
            ), 
            array('methods' => 'POST',
                 'callback' => 'post_form'
            )
        ) 
    );
});

As you can read in documentation:

Parameters #

$args - (array) (Optional)

Either an array of options for the endpoint, or an array of arrays for multiple methods.
Default value: array()

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745596084a4635123.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信