Создание конечной точки WordPress — обратный вызов со строкой передает кавычки

Я создаю конечную точку myurl.com/wp-json/userid/user/, к которой мое приложение для Android будет отправлять запросы, чтобы получить идентификатор пользователя по имени пользователя.

Смотрите код ниже:

        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 получает имя пользователя вместо простого имени пользователя, поэтому функция get_user_by (‘username’, $ username) не работает.

Например, вместо того, чтобы принимать get_user_by (‘username’, admin) это становится get_user_by (‘username’, «admin»).

Как я могу быть уверен, что полностью избавился от цитат? Заранее спасибо.

0

Решение

Основывается на документации WP, конечной точке нужна версия userid/v1 а также methods значение является строкой GET, Функция обратного вызова Response не нуждается в преобразовании в 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

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector