简单自定义 WP BP API 来自数据库 return 数据的端点 table
Simple custom WP BP API Endpoint to return data from a database table
我是一个 PHP 新手,正在尝试在我们的 BuddyPress 网站上扩展 Wordpress API。我已经创建了一个数据库 table,我计划用它来存储用户的朋友(或者在我们的特定情况下是“最喜欢的成员”)。我想使用用户 ID 作为输入(即“myapi/v1/favouritemembers/[用户 ID]”)向 return 用户的朋友编写一个 API 端点。这是我到目前为止所做的;
/*** Grab favourite members for a specified user ***/
function favourite_members( $data ) {
$favourites = get_favourite_members(array(
'user_id' => $data['user_id'],
) );
if ( empty( $favourites ) ) {
return null;
}
return $favourites;
}
function get_favourite_members( $data ){
global $wpdb;
$sql = $wpdb->prepare( "SELECT member_id FROM wp_my_favourite_members WHERE user_id = %d", $data['user_id'] );
return $wpdb->get_results( $sql );
}
/*** Register register_rest_route ***/
add_action( 'rest_api_init', function () {
register_rest_route( 'myapi/v1', '/favouritemembers/(?P<id>\d+)', array(
'methods' => 'GET',
'callback' => 'favourite_members',
) );
} );
我无法让它正常工作,端点只是 return 一个空响应。如果我替换查询
"SELECT member_id FROM wp_my_favourite_members WHERE user_id = %d", $data['user_id']
和 "SELECT member_id FROM wp_my_favourite_members WHERE user_id = 1"
然后它按预期工作,所以我怀疑我处理 get_favourite_members 函数中的输入参数的方式可能有问题,但我是不确定。
我已经解决了,我已经差不多了,只是需要改变
register_rest_route( 'myapi/v1', '/favouritemembers/(?P<id>\d+)'
至
register_rest_route( 'myapi/v1', '/favouritemembers/(?P<user_id>\d+)'
因此参数名称匹配。
我是一个 PHP 新手,正在尝试在我们的 BuddyPress 网站上扩展 Wordpress API。我已经创建了一个数据库 table,我计划用它来存储用户的朋友(或者在我们的特定情况下是“最喜欢的成员”)。我想使用用户 ID 作为输入(即“myapi/v1/favouritemembers/[用户 ID]”)向 return 用户的朋友编写一个 API 端点。这是我到目前为止所做的;
/*** Grab favourite members for a specified user ***/
function favourite_members( $data ) {
$favourites = get_favourite_members(array(
'user_id' => $data['user_id'],
) );
if ( empty( $favourites ) ) {
return null;
}
return $favourites;
}
function get_favourite_members( $data ){
global $wpdb;
$sql = $wpdb->prepare( "SELECT member_id FROM wp_my_favourite_members WHERE user_id = %d", $data['user_id'] );
return $wpdb->get_results( $sql );
}
/*** Register register_rest_route ***/
add_action( 'rest_api_init', function () {
register_rest_route( 'myapi/v1', '/favouritemembers/(?P<id>\d+)', array(
'methods' => 'GET',
'callback' => 'favourite_members',
) );
} );
我无法让它正常工作,端点只是 return 一个空响应。如果我替换查询
"SELECT member_id FROM wp_my_favourite_members WHERE user_id = %d", $data['user_id']
和 "SELECT member_id FROM wp_my_favourite_members WHERE user_id = 1"
然后它按预期工作,所以我怀疑我处理 get_favourite_members 函数中的输入参数的方式可能有问题,但我是不确定。
我已经解决了,我已经差不多了,只是需要改变
register_rest_route( 'myapi/v1', '/favouritemembers/(?P<id>\d+)'
至
register_rest_route( 'myapi/v1', '/favouritemembers/(?P<user_id>\d+)'
因此参数名称匹配。