可以在jQuery脚本中获取登录的用户名吗?

时间:2017-04-06 作者:Capiedge

如何在jQuery 剧本

背景:

我正在处理ACF转发器字段,我想自动填充一个子字段with the logged in username. 每次用户在可重复字段中添加新行时,都应执行此操作。

一切看起来都很好,但我还没来得及登录用户名jQuery. 我不知道怎么弄到它。任何指导都将不胜感激!

1 个回复
最合适的回答,由SO网友:Cedon 整理而成

您需要使用wp_localize_script() 函数,该函数允许您创建JavaScript对象,使用PHP填充数据,然后将其传递到JavaScript文件中。

这是在您的functions.php 将JavaScript文件排队的函数中的文件。您需要向它传递您将脚本作为队列的句柄、要在JavaScript中使用的对象的名称以及对象的属性和值数组。

从那时起,您只需使用wp_get_current_user() 函数获取您的值。

例如:

function theme_scripts() {
   global $current_user;
   $current_user = wp_get_current_user();

   wp_enqueue_script( \'theme-script\', get_template_directory_uri() . \'/js/functions.js\', array( \'jquery\' ), \'\', true );
   wp_localize_script( \'theme-script\', \'theUser\', array (
      \'username\' => $current_user->user_login,
   ) );
}
add_action( \'wp_enqueue_scripts\', \'theme_scripts\' );
问题是$current_user 默认情况下,不会在您的enqueue函数中填充,因此您需要在前面的某个地方调用它,如下所示:

global $current_user;
$current_user = wp_get_current_user();
现在可以在脚本中访问此对象,并为数组中放置的每个键提供属性。因此,在这种情况下,您可以访问用户的登录名theUser.username.