我是WP API的新手。
我收到消息
{ “ code”:“ rest_forbidden”, “ message”:“对不起,你不能这样做。”, “数据”:{ “状态”:401 } }
当我调用没有Permission_Callback的自定义终结点时,我会按预期获取数据。
当我添加current_user_can('edit_posts')时,我得到了上面的401。
然后我注释掉Permission_Callback,并在回调函数中添加了wp_get_current_user(),结果为0null。
function get_chassis_list() {
$current_user = wp_get_current_user();
echo $current_user->ID;
$args = array(
'post_parent' => 131,
'post_type' => 'any',
'numberposts' => -1,
'post_status' => 'any'
);
$chassis_list = get_children($args);
foreach( $chassis_list as $chassis_list_item){
$id = $chassis_list_item -> ID;
$post_title = $chassis_list_item -> post_title;
$items[] = array(
'Id' => $id,
'Title' => $post_title
);
}
return $items;
};
add_action( 'rest_api_init', function () {
register_rest_route( 'api/v1' , '/chassis_list', array(
'methods' => 'GET',
'callback' => 'get_chassis_list',
'args' => array(
'id' => array(
'validate_callback' => 'is_numeric'
),
),
// 'permission_callback' => function () {
// return current_user_can('edit_posts');
// },
));
});
我在plugins文件夹中已激活的插件中具有端点。
这些端点将用于React Native应用程序使用,我想让该应用程序作为用户使用这些端点。我还没有开始RN部分。我先设置端点,然后使用Chrome浏览器查看结果。
这是否被认为是外部API调用,甚至在插件中也很难?
如果是这样,那么我该如何传递用户,以便可以使用current_user_can()来限制API端点公开?
我看到cookie身份验证可以通过登录到仪表板来工作,但这可以通过我的插件方法来完成吗?
我真的不想添加其他插件来处理身份验证,只要我自己就能完成。
任何方向都值得赞赏!