另一种方法是使用“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]\' ); ?>