既然有了新的REST API,使用json端点EP_MASK还有意义吗?

时间:2015-12-29 作者:Luca Reghellin

我想知道。。。也许我不明白重点,不知道。我认为重写api仍然可以为普通用户创建漂亮的前端URL。但我不确定是否要通过ep\\U掩码添加json端点(例如:https://make.wordpress.org/plugins/2012/06/07/rewrite-endpoints-api/).

新的RESTAPI是否已经涵盖了这一点?我错过什么了吗?

顺便说一下。。。在此处创建“rest api”标记的时间http://wordpress.stackexchange.com?

1 个回复
最合适的回答,由SO网友:cybmeta 整理而成

我认为您应该停止使用重写端点来处理JSON响应。相反,您可以而且应该使用RESTAPI。

因此,与此相反:

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 );

}
总之:现在应该通过RESTAPI处理JSON端点。

相关推荐

创建帖子,包含来自远程API的数据

我需要一些帮助和指导。因此,我正在开发一个网站(自定义主题),目标是从远程API获取数据。我希望能够将数据存储在各个帖子中(一种自定义帖子类型),当有人向远程API添加或删除数据时,它应该会更新网站上的帖子。我使用的API的结构如下:https://pippinsplugins.com/edd-api/products我知道如何从中获取数据并解码JSON等。$url = \'https://pippinsplugins.com/edd-api/products\'; $username