【问题标题】:wordpress rest api get post data by url onlywordpress rest api 仅通过 url 获取帖子数据
【发布时间】:2019-10-25 14:56:39
【问题描述】:

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

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

不幸的是,我在 wordpress rest api 文档中找不到执行此操作的函数。我真正想要的是通过只知道 url 来获取帖子数据/类型

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

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

【问题讨论】:

    标签: wordpress rest api


    【解决方案1】:

    这解决了问题

    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

    【讨论】:

    • 它是如何解决您的问题的。您如何使用上述方法识别请求的 URL 的类型。请给出完整答案。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-17
      • 2020-11-23
      • 2013-02-05
      • 2017-04-23
      • 2018-11-02
      相关资源
      最近更新 更多