代码语法错误,“未定义用户全名”

时间:2014-03-05 作者:John B

我正在一个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 } 
?>
如果您能帮我弄清楚为什么会出现“未定义”的情况,我们将不胜感激。我是编码方面的新手,所以如果这完全是错误的方法,请给出建议。我们正在尝试根据当前登录门户的用户绘制图表。这段代码应该能抓取他们的数据并显示出来。

谢谢

1 个回复
最合适的回答,由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 );
}    

结束

相关推荐

对Google和访问者隐藏页面

我有wordpress网站,在那里我几乎没有自定义类型的页面。我使用jquery加载加载这些页面的内容。但我不希望这些页面直接可见。所以如果用户转到http://www.domain.com/work/project-name 它是看不见的。或者至少搜索机器人不会索引这些在/工作中的页面/我用单曲。php为html为页面。我该怎么办?只需拒绝搜索机器人与机器人一起使用即可。txt?我是否可以拒绝用户也去那里,但仍然保持jquery负载正常工作。谢谢