Конечная точка пользовательского API Wordpress не работает

{"code": "rest_no_route", "message": "Не найден маршрут, соответствующий URL-адресу и методу запроса", "data": {"status": 404}}

Я пытаюсь определить, что не так с моим кодом. Я написал настраиваемую конечную точку api для wordpress, но получаю указанную выше ошибку при попытке получить доступ к URL-адресу. Мой код выглядит следующим образом:

 $this->loader->add_action('rest_api_init', $plugin_public, 'create_api_webhook');

 public function create_api_webhook() {
    register_rest_route('learn2/v1', '/api/', array(
        'methods' => 'GET',
        'callback' => array($this, 'learn2_api_webhook')
    ));
}

public function learn2_api_webhook() {
    global $wpdb;
    $args = array('post_type' => 'sfwd-courses',
        'post_status' => 'publish',
        'order' => 'DESC',
        'orderby' => 'ID',
    );
    $loop = new WP_Query($args);
    $courses = array();
    $lessons = array();
    while ($loop->have_posts()) : $loop->the_post();

        $mylessons = learndash_get_lesson_list($post->ID);
        $lessons = array();
        foreach ($mylessons as $lesson) {
            $topics = array();
            $mytopics = learndash_get_topic_list($lesson->ID, $post->ID);
            foreach ($mytopics as $topic) {
                $topics[] = array('id' => $topic->ID, 'title' => $topic->post_title);
            }
            $lessons[] = array('id' => $lesson->ID, 'title' => $lesson->post_title, 'topics' => $topics);
        }
        $courses[] = array('id' => $post->ID, 'title' => $post->post_title, 'lessons' => $lessons);


    endwhile;


    return json_encode($courses);
}

Я пытаюсь получить доступ к URL-адресу с помощью:

http://localhost/community_staging/wp-json/learn2/v1/api/ but I get the above error.

Я использую последнюю версию WordPress


person Tommy Adeniyi    schedule 04.04.2018    source источник


Ответы (1)


$this->loader->add_action('rest_api_init', $plugin_public, 'create_api_webhook');

$ plugin_public указывал не на нужный класс.

person Tommy Adeniyi    schedule 04.04.2018