WordPress 端点创建 - 带字符串的回调传递引号
WordPress endpoint creation - Callback with string passes quotes
我正在创建一个端点 myurl.com/wp-json/userid/user/,我的 Android 应用程序将向其发出请求,以便通过用户名获取用户 ID。
查看下面的代码:
add_action('rest_api_init', 'get_user_id');
function get_user_id(){
register_rest_route('userid/','user/(?P<string>.+)', array(
'methods' => GET,
'callback' => 'get_this_id',
'args' => [ 'string' ]));
}
function get_this_id($data){
$username = $data['string'];
$myObj = get_user_by('username', $username);
$myJSON = json_encode($myObj);
echo $myJSON;
}
发生的是 get_this_id 函数获取 "username" 而不是普通用户名,因此 get_user_by('username', $username) 函数不起作用。
例如,不是采用 get_user_by('username', admin) 它得到 get_user_by('username', "admin").
我怎样才能确保完全去掉引号?提前致谢。
根据 WP 文档,端点需要版本 userid/v1
和 methods
值是一个字符串 GET
。响应回调函数不需要转换为JSON,WP自动检测格式并转换(Array/Object)。
https://developer.wordpress.org/reference/functions/register_rest_route/
https://developer.wordpress.org/reference/functions/get_user_by/
add_action('rest_api_init', 'get_user_id');
function get_user_id()
{
register_rest_route('userid/v1', 'user/(?P<string>.+)', array(
'methods' => 'GET',
'callback' => 'get_this_id',
'args' => ['string']
));
}
function get_this_id($data)
{
$username = $data['string'];
$user = get_user_by('login', $username);
return $user;
}
示例URL:
domain.tld/wp-json/userid/v1/user/parsa
我正在创建一个端点 myurl.com/wp-json/userid/user/,我的 Android 应用程序将向其发出请求,以便通过用户名获取用户 ID。
查看下面的代码:
add_action('rest_api_init', 'get_user_id');
function get_user_id(){
register_rest_route('userid/','user/(?P<string>.+)', array(
'methods' => GET,
'callback' => 'get_this_id',
'args' => [ 'string' ]));
}
function get_this_id($data){
$username = $data['string'];
$myObj = get_user_by('username', $username);
$myJSON = json_encode($myObj);
echo $myJSON;
}
发生的是 get_this_id 函数获取 "username" 而不是普通用户名,因此 get_user_by('username', $username) 函数不起作用。
例如,不是采用 get_user_by('username', admin) 它得到 get_user_by('username', "admin").
我怎样才能确保完全去掉引号?提前致谢。
根据 WP 文档,端点需要版本 userid/v1
和 methods
值是一个字符串 GET
。响应回调函数不需要转换为JSON,WP自动检测格式并转换(Array/Object)。
https://developer.wordpress.org/reference/functions/register_rest_route/
https://developer.wordpress.org/reference/functions/get_user_by/
add_action('rest_api_init', 'get_user_id');
function get_user_id()
{
register_rest_route('userid/v1', 'user/(?P<string>.+)', array(
'methods' => 'GET',
'callback' => 'get_this_id',
'args' => ['string']
));
}
function get_this_id($data)
{
$username = $data['string'];
$user = get_user_by('login', $username);
return $user;
}
示例URL:
domain.tld/wp-json/userid/v1/user/parsa