我是 Wordpress 和 REST-API 的新手,我已经能够让 GET 函数工作,但我无法将参数传递给 post 函数。
下面我粘贴了我的代码。输入http://localhost/wp-json/localhost/v1/activeitem时会产生活动 ID,但如果我提供http://localhost/wp-json/localhost/v1/activeitem/123我会得到 {"code" :"rest_no_route","message":"没有找到匹配 URL 和请求方法的路由","data":{"status":404}}。
在 Wordpress 的 REST API 控制台中运行 /localhost/v1/activeitem?45 时,我得到“完成”。所以在这一点上,我想知道我做错了什么。
的想法是 xxx/activeitem 调用将提供活动 ID,而 xxx/activeitem[parameter] 会将活动项目更新为提供的 ID。
function LocalHost_GetActiveItem() {
global $wpdb;
$querystr = "select option_value as pid from wp_options where option_name = 'acelive_active';";
$activeitem = $wpdb->get_results($querystr);
return $activeitem[0];
}
function LocalHost_SetActiveItem($id) {
//return $id;
return "done";
}
add_action( 'rest_api_init', function () {
register_rest_route( 'localhost/v1', '/activeitem/', array(
array(
'methods' => 'GET',
'callback' => 'LocalHost_GetActiveItem',
),
array(
'methods' => 'POST',
'callback' => 'LocalHost_SetActiveItem',
'args' => array('id' => 234)
),
) );
} );
add_action( 'rest_api_init', function () {
register_rest_route( 'localhost/v1', '/lastupdate/', array(
'methods' => 'GET',
'callback' => 'LocalHost_LastUpdate',
) );
} );