javascript - 如何通过 Javascript 在 wordpress 中检索当前用户?
问题描述
我有以下有效的代码。(当我按下按钮“测试”时,输入表单上会显示。
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-
core/6.1.19/browser.min.js"></script>
<script>
function btn1() {
document.getElementsByName("admin-status")[0].value = "test";
}
</script>
我想检索用户名,所以我认为我正确添加了它,但它说未定义。
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-
core/6.1.19/browser.min.js"></script>
<script>
global $current_user;
$current_user = wp_get_current_user();
function btn1() {
document.getElementsByName("admin-status")[0].value = $current_user;
}
</script>
我错过了什么?谢谢。菜鸟在这里。
解决方案
添加本地化脚本的更好方法
add_action( 'wp_enqueue_scripts', 'wp12311_enqueue_scripts' );
function wp12311_enqueue_scripts() {
wp_enqueue_script( 'wp12311-scripts', 'your_script_path/test.js', array( 'jquery' ), false, true );
wp_localize_script( 'wp12311-scripts', 'test', array(
'current_user' => wp_get_current_user()
) ) );
}
现在在test.js
文件中,您可以访问当前用户数据,例如
var displayName = test.current_user.display_name;
推荐阅读
- sql - 第一次运行查询返回的数据与第二次及后续运行的数据不同
- go - io.Copy vs gsutil - 将大文件复制到 GS
- javascript - 如何将动态字符串插入 HTML
- java - Android Studio 联网失败
- python - BinaryCrossentropy 中 from_logits 的意外行为?
- file-io - 使用 TCL 脚本在多个文件上运行命令
- mysql - 如何重用 SELECT 语句的结果?
- amazon-web-services - 为什么 AWS Codebuild Local - 自定义缓存不缓存文件?
- html - 使用 CSS 和 jQuery 填充列表元素的背景
- vue.js - 如何从 Vuex 中的不同命名空间模块访问 rootGetters?