programing

WP-REST API에 대한 사용자 지정 경로 끝점에서 "코드"를 제공합니다. "rest_no_route", 오류

megabox 2023. 9. 21. 20:14
반응형

WP-REST API에 대한 사용자 지정 경로 끝점에서 "코드"를 제공합니다. "rest_no_route", 오류

WP-API에 대한 사용자 지정 엔드포인트를 생성하기 위해 이 자습서를 따릅니다.

테스트할 우체부 /wp-json/custom-plugin/v2/get-all-post-ids/를 칠 때 항상 다음 오류가 발생합니다.

{
    "code": "rest_no_route",
    "message": "No route was found matching
    the URL and request method ", 
    "data": {
        "status": 404
    }
}

사용자 지정 플러그인을 만들었습니다./plugins/custom-plugin/ 디렉토리의 php 파일입니다.

<?php
    if ( ! defined( 'ABSPATH' ) ) exit;

    add_action( 'rest_api_init', 'dt_register_api_hooks' );

    function dt_register_api_hooks() {    

        register_rest_route( 'custom-plugin/v2', '/get-all-post-ids/', array(
            'methods' => 'GET',
            'callback' => 'dt_get_all_post_ids',
            ) 
            );
    }
    // Return all post IDs
    function dt_get_all_post_ids() {
        if ( false === ( $all_post_ids = get_transient( 'dt_all_post_ids' ) ) ) {
            $all_post_ids = get_posts( array(
                'numberposts' => -1,
                'post_type'   => 'post',
                'fields'      => 'ids',
            ) );
            // cache for 2 hours
            set_transient( 'dt_all_post_ids', $all_post_ids, 60*60*2 );
        }
        return $all_post_ids;
    }
?>

에 대한 콜백 확인add_action( 'rest_api_init', 'dt_register_api_hooks' );실행 중입니다.

제 경우에는 제 콜백이 전화가 되지 않았습니다.add_action('rest_api_init', ...)너무 늦었습니다; 그 행동은 이미 발사되었습니다.와 같이, 나의 전화는register_rest_route()한 번도 없었던 일입니다.

저는 제 대답이 누군가에게도 유용할 수 있기를 바랍니다.

비슷한 문제로 워드프레스에서 API를 설계하던 중에 저도 같은 것을 받았습니다."code": "rest_no_route",...다른 웹사이트가 아닌 일부 웹사이트에서 오류가 발생했습니다.POST 요청이 GET 요청으로 변경되어 플러그인이 인식하지 못한 것으로 추적하였습니다.POST에서 GET로의 전환은 워드프레스가 시작하기도 전에 이루어졌습니다.여기에 자세히 설명되어 있듯이 다음과 같은 헤더를 추가하여 문제를 정확히 파악하고 해결할 수 있었습니다.

headers: { 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8' }

언급URL : https://stackoverflow.com/questions/36645019/custom-route-endpoint-for-wp-rest-api-gives-code-rest-no-route-error

반응형