Подтвердить что ты не робот

Событие rest_api_init не запущено

Я пытаюсь запустить пользовательский плагин на wp 4.7.4. Ниже мой простой плагин

add_action( 'rest_api_init', 'register_routes');


function register_routes() {
   register_rest_route( 'taxonomy-manager/v1', '/taxonomies/(P<taxonomy_type>[a-zA-Z]+)', array(
   'methods' => 'GET',
   'callback' => 'get_or_insert'
  ) );
} 

function get_or_insert( WP_REST_Request $request ) {

   $parameters = $request->get_params();

   return $parameters;

}

Когда я запрашиваю конечную точку wp-json, я не вижу маршрута плагина. Плагин был успешно активирован. Я что-то пропустил? Плагин (или аналогичный, основанный на событии rest_api_init) работает для кого-либо еще? Спасибо.

4b9b3361

Ответ 1

См. ниже контрольный список,
1. Измените свою постоянную ссылку как симпатичную постоянную ссылку и проверьте.
2. Проверьте файл .htacess(он должен быть доступен для записи, если вы сохраните структуру постоянной ссылки, которую перезаписываете wp).
3. Проверьте Auth. 4. Проверьте ниже способ создания пользовательской конечной точки,

add_action( 'rest_api_init', function () {
  register_rest_route( 'myplugin/v1', '/author/(?P<id>\d+)', array(
    'methods' => 'GET',
    'callback' => 'my_awesome_func',
  ) );
} );

REF: https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/

Ответ 2

Используя последнюю сборку, я не вижу, как срабатывает действие rest_api_init. Похоже, что этот код в файле plugin.php всегда пуст и возвращается, не позволяя активировать действие rest_api_init:

if ( empty( $GLOBALS['wp']->query_vars['rest_route'] ) ) {
    return;
}