web-dev-qa-db-ja.com

新しいrest APIがあるので、jsonエンドポイントep_maskを使用しても意味がありますか?

私は疑問に思っていました...たぶん、私はここでポイントを得ません、わかりません。私はrewrite apiがまだ普通のユーザーのための美しいフロントエンドURLを作成するのに便利だと思います。しかし、私はep_masksを介してJSONエンドポイントを追加することについてはよくわかりません(例えば: https://make.wordpress.org/plugins/2012/06/07/rewrite-endpoints-api/ ).

新しいレストAPIですでにカバーされているものではありませんか。私は何かが足りないのですか?

ちなみに...ここで「rest-api」タグを作成する時があります。 http://wordpress.stackexchange.com

1
Luca Reghellin

JSONレスポンスを処理するために書き換えエンドポイントの使用をやめるべきだと思います。代わりにあなたはできるし、あなたはREST AP​​Iを使うべきです。

だから、これの代わりに:

function makeplugins_add_json_endpoint() {
    add_rewrite_endpoint( 'json', EP_PERMALINK | EP_PAGES );
}
add_action( 'init', 'makeplugins_add_json_endpoint' );

そして、JSONレスポンスを自分で処理することで、次のようなことが可能になります。

add_action( 'rest_api_init', 'cyb_register_api_endpoints' );
function cyb_register_api_endpoints() {

    $namespace = 'myplugin/v1';

    register_rest_route( $namespace, '/myendpoint/', array(
        'methods' => 'GET',
        'callback' => 'cyb_myendpoint_callback',
    ) );

}

function cyb_myendpoint_callback() {

    //$response can be a Object, JSON, array
    $response = [];

    return new WP_REST_Response( $response );

}

結論として、JSONエンドポイントはREST AP​​Iを介して処理する必要があります。

1
cybmeta