我正在一个WordPress网站上工作,该网站使用Google可视化API查询语言,使用当前登录用户的数据将图表放到页面上。我正在使用函数wp\\u get\\u current\\u user()获取用户数据
$current_user = wp_get_current_user();
我已经做了几天了,这是我能得到的最接近的,但我在$current\\u用户变量上得到了一个“userfullName undefined”。
我的代码:
<?php
if (is_page( \'home\' )) { ?>
// This piece is supposed to be in the code below, but it throws an error on the return;
//<?php
//$current_user = wp_get_current_user();
//if ( !($current_user) ) {
// return;
//}
//?>
<?php
$current_user = wp_get_current_user();
?>
<script type="text/javascript" src="//www.google.com/jsapi"></script>
<script type="text/javascript">
google.load(\'visualization\', \'1\', {packages: [\'linechart\']});
</script>
<script type="text/javascript">
userfullName = <?php $current_user->display_name;?>
Querystring = \'select C, max(G) where A = "\' + userfullName + \'" group by C order by C asc\';
var visualization;
function drawVisualization() {
var query = new google.visualization.Query(
\'http://spreadsheets.google.com/tq?key=KEY_GOES_HERE&gid=0&pub=0\');
// Apply query language.
query.setQuery(Querystring);
// Send the query with a callback function.
query.send(handleQueryResponse);
}
function handleQueryResponse(response) {
if (response.isError()) {
alert(\'Error in query: \' + response.getMessage() + \' \' + response.getDetailedMessage());
return;
}
var data = response.getDataTable();
visualization = new google.visualization. LineChart(document.getElementById(\'visualization\'));
visualization.draw(data, {legend: \'top\'});
}
google.setOnLoadCallback(drawVisualization);
</script>
<?php }
?>
如果您能帮我弄清楚为什么会出现“未定义”的情况,我们将不胜感激。我是编码方面的新手,所以如果这完全是错误的方法,请给出建议。我们正在尝试根据当前登录门户的用户绘制图表。这段代码应该能抓取他们的数据并显示出来。
谢谢
最合适的回答,由SO网友:Douglas.Sesar 整理而成
你错过了“回声”
userfullName = <?php $current_user->display_name;?>
应该是
var userfullName = "<?php echo $current_user->display_name;?>"
注意,我也用引号括起来了。
但是
您应该真正考虑使用wp_localize_script 用于声明javascript变量。
示例:
add_action(\'wp_enqueue_scripts\', \'fobu_front_scripts\');
function fobu_front_scripts() {
global $blog_id;
$params = array(
\'site_url\' => site_url(),
\'blog_id\' => $blog_id
);
wp_localize_script( \'jquery\', \'MyScriptParams\', $params );
}