WordPress:如何向自定义插件传递登录用户信息?
获取WordPress登录用户信息的实现方案
方法一:直接在PHP模板中注入用户信息(推荐)
这是最简洁高效的方式,无需额外AJAX请求。因为页面仅对登录用户开放,PHP可直接获取当前用户数据,输出为JS全局变量供你的绘图应用调用:
<?php if (is_user_logged_in()) { $current_user = wp_get_current_user(); ?> <script> window.currentWPUser = { id: <?php echo $current_user->ID; ?>, name: '<?php echo esc_js($current_user->display_name); ?>' }; </script> <?php } ?>
你的原生JS应用启动后,直接读取window.currentWPUser即可拿到用户ID和姓名,上传画布时将这些数据一并发送。
方法二:通过REST API发起GET请求
如果坚持用GET请求获取,可调用WordPress内置REST API的/wp-json/wp/v2/users/me端点。用户已登录的情况下,WordPress会通过Cookie自动验证身份,直接发起请求即可:
fetch('/wp-json/wp/v2/users/me') .then(res => { if (!res.ok) throw new Error('获取用户信息失败'); return res.json(); }) .then(userData => { // 提取用户ID:userData.id,用户姓名:userData.name // 保存到变量,上传时随JPEG一起提交 }) .catch(err => console.error(err));
注意:确保站点未使用“朴素” permalink 模式,否则REST API端点需改为/?rest_route=/wp/v2/users/me。
关键注意事项
- 后端必须对上传时收到的用户信息做二次校验,不能完全信任前端数据,要验证该用户ID是否有效且处于登录状态,防止伪造请求。
内容的提问来源于stack exchange,提问作者James K.
相关产品推荐
相关产品推荐

