验证回调的请求对象

时间:2015-10-19 作者:Loc Pham

我正在尝试基于WP REST Api(版本2)定义一个新的REST Api端点,并对validate_callbacksanitize_callback. 是Request 对象是否可用于这些回调?

例如:

add_action( \'rest_api_init\', function () {
    register_rest_route( \'myplugin/v1\', \'/author/(?P<id>\\d+)\', array(
        \'methods\' => \'GET\',
        \'callback\' => \'my_awesome_func\',
        \'args\' => array(
            \'id\' => array(
                \'validate_callback\' => \'my_validation\'
            ),
        ),
    ) );
} );

function my_validation (WP_REST_Request $request) {
   return is_numeric( $request[\'id\'] );   // Is this acceptable???
}

1 个回复
最合适的回答,由SO网友:phatskat 整理而成

通过WP-API源的快速搜索发现validate_callback 正在使用:

wp-api/lib/infrastructure/class-wp-rest-request.php

$valid_check = call_user_func( $arg[\'validate_callback\'], $param, $this, $key );
在这种情况下,$this 是的实例WP_Rest_Request - 所以有一个。现在,为了sanitize_callback:

$this->params[ $type ][ $key ] = call_user_func( $attributes[\'args\'][ $key ][\'sanitize_callback\'], $value, $this, $key );
同一个文件$this 您正在寻找。所以是的,两者都应该得到WP_Rest_Request 作为他们的第二个论点。

相关推荐

Dynamic Endpoints

我在WordPress外部有一个数据库表,需要为其创建端点。我已经创建了一个页面/cars/ 我计划使用页面模板生成链接。我希望url看起来像/cars/camaro/ ()/cars/%model%/ ). 起初,我认为我可以使用端点,但不知道如何根据从模型表中提取的段塞使它们动态。我也不确定使用Permalink结构标签是更容易还是更好。我甚至不完全确定从哪里开始,我以前创建过“静态”端点,所以我有一个基础可以跳出,但当我到达request 我不知道该怎么办。/** * Add endpoi