基于用户ID的自定义DB查询的WordPress REST API自定义端点



我在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'
));
}

试试这个:把$id放在SELECT语句中的引号中:'$id'。对我来说不符合逻辑,但对于我的SELECT语句来说,这是有效的。例如:"SELECT `titel`FROM`table`WHERE `titel`='$san_title_given'">

最新更新