Различные пользовательские конечные точки WP Rest API для разных тем - PullRequest
0 голосов
/ 09 ноября 2018

Я создал собственную тему на Wordpress с пользовательскими конечными точками API WP Rest. Вот как я это настроил.

Название темы: Тема 1

Добавлена ​​строка ниже в functions.php

require get_parent_theme_file_path( '/inc/myapi-functions.php' );

И myapi-functions.php состоит из всех пользовательских API. Давайте возьмем пример конечной точки

add_action('rest_api_init','lmsRoutes');

function lmsRoutes(){
    register_rest_route( 'abcAPIRoute/v1', 'login', array(
        'methods' => 'POST',
        'callback' => 'loginABCuser'
    ));
}

И логин ABCuser, как показано ниже

function loginBUuser($request){
    //do some wp_rest_get which returns a response 'my dummy text 1'
    $response = // wp_rest_get response;
    return $response;
}

Вышеописанное прекрасно работает. Я получаю ответ мой фиктивный текст 1 по мере необходимости.

Теперь URL в wp_rest_get ответах постоянно меняется каждый раз, когда происходят некоторые изменения в логиках удаленного API. Однако это обратно совместимо в версии. Например, я могу продолжать отправлять данные по URL v1 и получать ответ v1, даже если удаленный API имеет версию v5.

Сначала я подумал, что используя cPanel хостинг-провайдера, я могу клонировать текущую тему, внести изменения в myapi-functions.php и выполнить необходимое тестирование и разработку в клонированной теме, а затем поменять живую тему на клонированную тему. Пример будет таким, как показано ниже (для loginABCuser в клонированной теме)

function loginBUuser($request){
    //do some wp_rest_get which returns a response 'my dummy text 2'
    $response = // wp_rest_get response;
    return $response;
}

Я ожидал, что ответ будет мой фиктивный текст 2 , но он все равно вернет мой фиктивный текст 1

Как мне справиться с этим и куда я иду не так?

Я даже пытался изменить

require get_parent_theme_file_path( '/inc/myapi-functions.php' );

до

require get_theme_file_path( '/inc/myapi-functions.php' );

в functions.php, но все та же проблема.

Я всегда могу вносить изменения и тестировать их в локальной среде, но мне было интересно, могу ли я сделать это, используя редактор файлов cPanel и предварительный просмотр WP Theme, как мне это сделать?

И как лучше всего обрабатывать такие изменения в пользовательских конечных точках WP Rest API?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...