wordpress rest api仅通过url获取发布数据

时间:2019-06-11 08:23:52

标签: wordpress rest api

是否可以使用url作为参数从wordpress rest api获取帖子数据/类型?

我已经从soundcloud知道此功能。有一个带有url参数的resolve函数(请参见https://developers.soundcloud.com/docs/api/reference#resolve)。调用此rest api端点时,如果URL是例如曲目或播放列表,则会获得详细信息。

不幸的是,我在wordpress rest api文档中找不到执行此操作的功能。我真正想要的是只知道网址即可获取帖子数据/类型

具有这样的功能 https://demo.wp-api.org/wp-json/wp/v2/resolve?url=https://demo.wp-api.org/2017/05/23/hello-world/

有没有办法做到这一点?还是我需要使用wordpress插件编写自己的rest api端点?

2 个答案:

答案 0 :(得分:0)

您可以获取所有帖子https://demo.wp-api.org/wp-json/wp/v2/posts,然后执行以下操作:

$.each(data, function(index, post){
    if(post.link == yourUrl){
    //yourcode
    }
});

如果您不想编写自己的端点

答案 1 :(得分:0)

这解决了问题

function route_handler($request)
{
    global $wp;
    global $wp_query;
    $parameters = $request->get_json_params();
    $url = $parameters["url"];
    $_SERVER['REQUEST_URI'] = $url;
    $wp->parse_request();
    $wp->query_posts();
    //Insert queries for more specific information
    //Modify or simplify the query results
    //Here I'm just returning the query results.
    return json_encode($wp_query);
}
add_action('rest_api_init', function () {
    register_rest_route('custom-theme/v1', '/route', array(
        'methods' => 'POST',
        'callback' => 'route_handler',
    ));
});

请参阅:https://medium.com/@harryhorton/query-wp-rest-api-using-any-permalink-url-f5e4e4dd36b7