是否可以使用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端点?
答案 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