我在 WordPress 中创建了一个自定义端点,其中回调根据登录的用户 ID 调用一个函数来查询自定义表。因此,结果将特定于登录用户。
问题是,使用我当前的代码,如果我通过邮递员对我的本地站点进行 api 调用,它会返回空。
[]
但是,如果我将查询中的 $id 变量换成一个数字,例如 11(它与用户 ID 匹配),它会起作用并且我会得到预期的结果。似乎数据在回调阶段丢失了。
我认为这可能与没有设置“权限回调”有关,但这似乎没有任何区别。任何人都可以解释一下吗?
function completed_peak() {
$current_user = wp_get_current_user();
$id = esc_html( $current_user->ID );
global $wpdb;
$results = $wpdb->get_results("SELECT *
FROM {$wpdb->prefix}custom_user_data
WHERE user_id = $id",
ARRAY_A
);
return $results;
}
add_action( 'rest_api_init', 'user_completed_peaks');
function user_completed_peaks() {
register_rest_route( 'wp/v2', '/custom_user_data', array(
'methods' => 'GET',
'callback' => 'completed_peak'
));
}