调查register_rest_field()
向rest api注册meta。
add_action( \'rest_api_init\', \'adding_user_meta_rest\' );
function adding_user_meta_rest() {
register_rest_field( \'user\',
\'collapsed_widgets\',
array(
\'get_callback\' => \'user_meta_callback\',
\'update_callback\' => null,
\'schema\' => null,
)
);
}
然后把你的
get_user_meta
回调中的位。
function user_meta_callback( $user, $field_name, $request) {
return get_user_meta( $user[ \'id\' ], $field_name, true );
}
The
WP_REST_Meta_Fields class 也可能提供更有用的见解。
<小时>
Update per OP comment on registering custom routes
又快又脏的
partial 实例坐在我面前的一些东西拼凑而成,但这不是一个有效的例子。
在您阅读文档时可能会有所帮助。遵循第一个register_rest_route
, 它是GET
方法的回调,my_get_callback
, 以及回调方法的使用WP_Rest_Request
班这应该有助于将这些步骤联系起来。我在评论中提到的文档将进入其他参数、参数等,当然还有permissions_callback
东西
希望有帮助。
class My_Extend_Rest extends WP_REST_Controller {
public function __construct() {
add_action( \'rest_api_init\', array( $this, \'register_routes\' ) );
}//end __construct
public function register_routes() {
$version = \'1\';
$namespace = \'my-fancy-namespace/v\' . $version;
$base = \'my-route-base\';
// so, site.com/wp-json/my-fancy-namespace/v2/my-route-base/
register_rest_route( $namespace, \'/\'. $base, array(
array(
\'methods\' => \'GET\',
\'callback\' => array( $this, \'my_get_callback\' ),
\'permission_callback\' => array( $this, \'key_permissions_check\' ),
),
array(
\'methods\' => \'POST\',
\'callback\' => array( $this, \'my_post_callback\' ),
\'permission_callback\' => array( $this, \'key_permissions_check\' ),
),)
);
$base2 = \'my-second-base\';
// so, site.com/wp-json/my-fancy-namespace/v2/my-second-base/
register_rest_route( $namespace, \'/\'. $base2, array(
array(
\'methods\' => \'GET\',
\'callback\' => array( $this, \'my_get_callback_two\' ),
\'permission_callback\' => array( $this, \'key_permissions_check\' ),
),
array(
\'methods\' => \'POST\',
\'callback\' => array( $this, \'my_post_callback_two\' ),
\'permission_callback\' => array( $this, \'key_permissions_check\' ),
),)
);
}//register_routes
public function key_permissions_check() {
//do permissions check stuff
}
public function my_get_callback( WP_REST_Request $request ) {
//do stuff with $request
//see the methods mentioned in the comment
}//end
}//end class