-
首先,需要创建一个 WP BP 自定义插件。
-
在插件中创建一个函数用于注册新的 API 端点:
function register_my_custom_endpoint() {
bp_rest_register_route( 'myplugin/v1', '/my-table-data/', array(
'methods' => 'GET',
'callback' => 'return_my_table_data',
'permission_callback' => function() {
return true;
}
) );
}
add_action( 'bp_rest_api_init', 'register_my_custom_endpoint' );
- 然后,编写回调函数 return_my_table_data,用于从数据库表中获取数据并将其返回。以下是一个示例(假设我们要返回一个名为 my_table 的数据库表中的数据):
function return_my_table_data( $request ) {
global $wpdb;
$results = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}my_table" );
if ( empty( $results ) ) {
return new WP_Error( 'no_data', 'There is no data to display.', array( 'status' => 404 ) );
}
$data = array();
foreach ( $results as $row ) {
$item = array(
'column_1' => $row->column_1,
'column_2' => $row->column_2,
'column_3' => $row->column_3
);
$data[] = $item;
}
return $data;
}
在这个示例中,我们首先使用 $wpdb 获取名为 my_table 的数据库表中的所有行,并将它们存储在 $results 变量中。然后,我们检查 $results 是否为空,如果是,则返回 404 状态的 WP_Error。否则,我们遍历结果并将每个行转换为一个包含 each column 数据的数组项,并将其存储在 $data 数组中。
- 最后,我们需要确保插件已启用,并测试我们的自定义 API