2016-06-20 6 views
1

PHPスクリプトをJSスクリプトに渡そうとしています。 私はwp_localize_script関数を使用しています。wp_localize_scriptでデータが正しく渡されない

wp_register_script('googlechart', 'https://www.gstatic.com/charts/loader.js'); 
wp_register_script('mygaloochart_script', plugins_url('chart.js', __FILE__), array('googlechart')); 

//I'm not using $atts directly for reasons 
$dataToBePassed = array (
     'chart' => $atts['chart'], 
     'element' => $atts['element'], 
     'elementtype' => $atts['elementtype'], 
     'title' => $atts['title'] 
); 

wp_localize_script('mygaloochart_script', 'php_vars', $datatoBePassed); 

wp_enqueue_script('googlechart'); 
wp_enqueue_script('mygaloochart_script'); 

これは、JSスクリプトmygaloochart_scriptの最初の行です:

console.log(php_vars.chart); 

しかし、私は、コンソールで次のエラーを取得する:

TypeError: php_vars is null 

は私が間違って何をしているのですか?

答えて

0

私の評判のためにコメントすることはできません。ちょうど興味があります、あなたは以下のような関数をフックしましたか?

更新

function add_vars_to_js(){ 

wp_register_script('googlechart', 'https://www.gstatic.com/charts/loader.js'); 
wp_register_script('mygaloochart_script', plugins_url('chart.js', __FILE__), array('googlechart')); 

//I'm not using $atts directly for reasons 
$dataToBePassed = array (
     'chart' => $atts['chart'], 
     'element' => $atts['element'], 
     'elementtype' => $atts['elementtype'], 
     'title' => $atts['title'] 
); 

wp_localize_script('mygaloochart_script', 'php_vars', $datatoBePassed); 

wp_enqueue_script('googlechart'); 
wp_enqueue_script('mygaloochart_script'); 
} 

add_action('wp_enqueue_scripts', 'add_vars_to_js'); 
+0

私はしませんでした。これは必要ですか?これは 'wp_localize_script'文書には書かれていません。 –

+0

はい、新しいスクリプトとスタイルを登録しているので、必要です。 – Ayanize

+0

構文は何ですか?私のスクリプトで呼び出される関数は 'drawChart()'と呼ばれています(申し訳ありませんが、Wordpressの新機能です)。 –

0

あなたの配列の名前は$dataToBePassedです。しかし、wp_localize_script機能に$datatoBePassedを渡しています。大きなT、小さいt。 PHP変数名は大文字小文字の区別です。

関連する問題