我正在使用WordPress REST API和VueJS以及Axios(用于AJAX调用以获取/发布数据回站点)进行一个项目。然而,我需要能够从REST API访问用户的元数据,即“collapsed\\u widgets”,但我从GET响应中收到的数据是
"meta": [],
这也适用于所有用户,这很奇怪,因为那里应该有数据。是否有任何方法可以为用户获取元数据?
我正在使用WordPress REST API和VueJS以及Axios(用于AJAX调用以获取/发布数据回站点)进行一个项目。然而,我需要能够从REST API访问用户的元数据,即“collapsed\\u widgets”,但我从GET响应中收到的数据是
"meta": [],
这也适用于所有用户,这很奇怪,因为那里应该有数据。是否有任何方法可以为用户获取元数据?
调查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 );
}
TheWP_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
我向WordPress添加了一个自定义端点,如下所示: add_action( \'rest_api_init\', function () { register_rest_route( \'menc/v1\', \'/crosscat/(?P[\\w-]+)/(?P[\\w-]+)\', array( \'methods\' => \'GET\', \'callback\' => \'dept_cat_api\',&#x