2

WordPress プラグインの WP_Widget クラスのウィジェット関数には、$hello という名前の php 配列変数があります。この変数をjavascriptに渡したいです。関数 wp_localize_script を見て、それを使用しようとしました。しかし、関数内からは機能していません。それを機能させる方法は?

これは私の WP_Widget クラスの widget() 関数のコードです。

wp_register_script('color-script', plugin_dir_url(__FILE__).'scripts/custom.js');
wp_enqueue_script('color-script');
$data = array("text_color" => $instance['text-color'], "bg_color" => $instance['bg-color'], "button_color" => $instance['button-color']);
wp_localize_script('color-script', 'php_data', $data);

これは、custom.js の JavaScript です。

document.getElementById("wid-small-div").style.color = php_data.text_color;
document.getElementById("wid-small-div").style.background = php_data.bg_color;
4

3 に答える 3

0

はい、PHP 変数を JavaScript に渡すことはできますが、Javascript から PHP に変数を渡すことはできません。PHP はサーバー側で処理されるため、ページがブラウザーに表示されるまでに、すべての PHP は既に処理されており、Javascript が機能し始めます。

この方法で試すことができます:

var hello = '<?php echo $hello ?>';
于 2013-10-09T17:36:58.743 に答える
0

変数の内容を$helloJS 変数として出力するだけです。

# WP_Widget::widget()
echo '<script>var hello = ' . json_encode($hello) . ';</script>';

次に、ウィジェットがレンダリングされるとhello、JS に変数が作成されます。

于 2013-10-09T17:36:12.413 に答える