在JavaScript中打印WordPress用户名ID

时间:2019-05-02 作者:sot

您好,我正在尝试在JavaScript中打印用户id

<script type="text/javascript">
  Li.re(\'ab12\',\'$user_id\');  
  </script>
我想输出像

<script type="text/javascript">
  Li.re(\'ab12\',\'12\');  
  </script>
12是登录用户的编号。

是否可能在短代码内?

<?php echo do_shortcode(\'[mycred_link href="\'.get_field(\'incentivised_url\', $taxonomy . \'_\' . $termId).\'subid1=\'.$get_current_user_id.\'[/mycred_link]\'); ?>
The.$get_current_user_id. 短代码内部不起作用。

有什么帮助吗?

2 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

您可以使用get_current_user_id() 要获取当前用户的ID,您可以在JavaScript中打印用户IDLi.re() 电话:

<script type="text/javascript">
  Li.re( \'ab12\',\'<?php echo get_current_user_id(); ?>\' );
</script>
是的,您可以将用户ID作为快捷码的一部分:(注意,我省略了href 参数(为简单起见)

<?php echo do_shortcode( \'[mycred_link subid1="\' . get_current_user_id() . \'"][/mycred_link]\' ); ?>
PS:您的短代码缺少结束语] 标记,所以我在上面添加了它。所有短代码参数值也应该用单引号/双引号括起来。

SO网友:Marshall Fungai

另一种方法是使用“wp\\u localize\\u script()”从php创建可以从任何地方访问的对象。

//Get User ID
$user = wp_get_current_user();
$userID = $user->roles[0];

//Enqueue script 
wp_register_script( \'script_handle\', get_template_directory_uri() . \'/js/custom.js\', array( \'jquery\' ), \'\', true );

// Localize the script with new data
$dataArray = array(
    \'userID\' => $userID,
    \'anyother_value\' => \'more data\'
);
wp_localize_script( \'script_handle\', \'object_name\', $dataArray );

// Enqueued script with localized data.
wp_enqueue_script( \'script_handle\' );
在单独的javascript文件中,您可以像下面这样简单地调用对象。

Li.re( \'ab12\', object_name.userID );
您的快捷码调用不起作用,因为“..$get\\u current\\u user\\u id.”不是一个变量,而是一个函数。正确的方法是“.get\\u current\\u user\\u id()”。我觉得你说的不对。您需要创建一个新的WP\\U用户对象。

 <?php
    $user = new WP_User(get_current_user_id());
    $userID = $user->roles[0];
   ?>
   <?php echo do_shortcode( \'[mycred_link subid1="\' . $userID . \'"][/mycred_link]\' ); ?>

相关推荐

Filter Tags for current users

我有一个自定义的post类型调用问题,它有自定义的分类法,称为问题标签。这些问号进一步用于创建动态测验。我想限制用户只使用他们创建的问号。他们无法访问其他人创建的标签。怎么可能呢?让我知道如何让每个用户的标签都是私有的,这样他们就不能在前端表单中使用彼此创建的标签了