You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP匹配WordPress用户ID与其他数据表ID并展示对应数据

WordPress双表关联匹配校验修复方案

现有代码核心问题

  • 调用get_userdata()返回的是WP_User用户对象,无法直接和整数类型的ID做等值判断,需要提取对象的ID属性参与比对
  • 两次查询wp_h5p_results表均未加WHERE条件,默认只会返回整张表的第一条记录,无法匹配到当前登录用户的专属数据
  • 未主动获取当前登录用户的ID,代码中的$user_id变量没有赋值来源

修复后可用代码

假设wp_h5p_results表中存储关联WordPress用户ID的字段为user_id(如果你的表实际字段名不同,替换成对应字段即可),修复后的代码如下:

// 获取当前登录用户ID,未登录时返回0
$current_user_id = get_current_user_id();
if ($current_user_id === 0) {
    echo '<p>请先登录账号</p>';
    return;
}

global $wpdb;
// 直接查询对应用户的分数,单次SQL即可完成匹配+取值
$total_score = $wpdb->get_var(
    $wpdb->prepare(
        "SELECT score FROM wp_h5p_results WHERE user_id = %d",
        $current_user_id
    )
);

if ($total_score !== null) {
    echo "<p>Your Score {$total_score}</p>";
} else {
    echo 'No user with such ID';
}

代码说明

  • 用get_current_user_id()主动获取当前登录用户的ID,兼容未登录场景的判断
  • 用$wpdb->prepare()做SQL预处理,避免SQL注入风险,符合WordPress代码规范
  • 单次查询即可完成匹配和取值,不需要分开两次查询数据库,执行效率更高

内容的提问来源于stack exchange,提问作者Imran Yunus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:57:01