[英]Wordpress REST API Endpoint
我正在寫一個Angular WP主題,我正在嘗試減少帖子頁面上的HTTP請求數量。
在帖子頁面上,我想列出所有不同的分類,最近的帖子,獲取特色圖片和其他一些東西。 我可以使用REST API v2插件執行所有這些操作,但這是很多請求。
我希望為我的主題創建一個端點,解析post slug並在一個請求中將其全部恢復,但我似乎無法弄明白。
我正在考慮使用查詢字符串來獲取slug。 以下是我用來測試它的內容:
function app_get_post($data) {
global $wp_query;
return [
'test' => $data,
'vars' => $wp_query->query_vars
];
}
add_action( 'rest_api_init', function () {
register_rest_route( 'app/v1', '/post', [
'methods' => 'GET',
'callback' => 'app_get_post',
] );
} );
這是它產生的東西:
{
test: { },
vars: [ ]
}
我嘗試使用query_vars
鈎子添加查詢var,但它也不起作用。
有什么建議? 我是以正確的方式來做這件事的嗎?
你應該傳遞參數
function app_get_post($data) {
return [
'test' => $data["postid"]
];
}
add_action( 'rest_api_init', function () {
register_rest_route( 'app/v1', '/post/(?P<postid>\d+)', [
'methods' => 'GET',
'callback' => 'app_get_post',
] );
} )
所以我也在了解這一切,但尚未取得成功,但會提供我的研究方向。 我知道要進入自定義帖子類型,您需要將show_in_rest=true
添加到register_post_type()
數組或稍后掛鈎。
然而你的例子顯示了我猜的應該有show_in_rest
注冊的帖子的使用...我決定檢查wp-includes / post.php並且它不存在。
// ACCESSING A CPT FROM ANYWHERE (unable to add show_in_rest=true to the register_post_type() hook into it!)
// http://scottbolinger.com/custom-post-types-wp-api-v2/
function sb_add_cpts_to_api( $args, $post_type ) {
if ( 'movie' === $post_type ) {
$args['show_in_rest'] = true;
$args['rest_base'] = 'movie';
// $args['rest_controller_class'] = 'WP_REST_Posts_Controller';
}
return $args;
}
add_filter( 'register_post_type_args', 'sb_add_cpts_to_api', 10, 2 );
在這里你需要傳遞參數如下所示
//端點: http : //wpdadd.com/wp-json/api/v1/getwp/ {parameter 1} / {parameter2}
register_rest_route( 'api', '/v1/getwp/(?P<param1>[a-z0-9\-]+)/(?P<param2>[a-z0-9\-]+)', array(
'methods' => 'GET',
'callback' => 'wpdaddStuff'
));
有關更多信息,請查看此示例http://wpdadd.com/create-custom-rest-api-wordpress/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.