私はプラグインを作っていました、そして私は私がよく機能を示すためにデータベースに保存されたいくつかのオプションを取りたいJavaScriptファイルを持っています。
だから私はこれがあります:
function wp_home(){
wp_enqueue_script( 'some-name-1', '//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js', '1.0.0', true );
wp_enqueue_style( 'some-name-2', plugins_url( 'assets/jquery.something.css', __FILE__ ) );
wp_enqueue_script( 'some-name-3', plugins_url( 'assets/jquery.something.js', __FILE__ ), '1.0.0', true );
global $table_prefix;
$dbh = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_Host );
$table = $table_prefix.'options';
$qd = "SELECT option_value FROM $table WHERE option_name = 'description'";
$description = $dbh->get_results( $query_link );
$description = $description[0]->option_value;
//HERE I HAVE THE STRING OF $description AND I WANT TO PASS INSIDE TO CUSTOM-JS-PHP
wp_enqueue_script( 'custom-name-js', plugins_url( 'assets/custom-js.php', __FILE__ ), '1.0.0', true );
}
Custom-js.phpファイルは次のようなものです。
<?php header("Content-type: text/javascript"); ?>
$(document).ready(function(){
$.showBox({
message: '<?php echo $description; ?>',
});
});
$の説明はどうやって使えますか? JavaScriptをwp_home()の中に入れてもうまくいきません。
ありがとう
wp_localize_script() を使用すると、php変数をjavascriptに渡すことができます。 phpで配列を作成し、それを3番目のパラメータとして関数に渡します。それはあなたが2番目のパラメータで名前を付けたオブジェクトとして現れます。
まず、スクリプトを登録してください。
wp_register_script( 'custom-name-js', plugins_url( 'assets/custom-js.php', __FILE__ ) );
次に、アレイを構築してwp_localizeを実行します。
$my_array = array( 'description' => $description[0]->option_value );
wp_localize_script( 'custom-name-js', 'js_object_name', $my_array );
最後に、あなたは自分のスクリプトをエンキューします。
wp_enqueue_script( 'custom-name-js' );
次に、jsファイルに、descriptionというプロパティを持つjs_object_nameという名前のjsオブジェクト(またはwp_localize_scriptの2番目のパラメータとして渡すもの)を用意します。
js_object_name.description
あなたはこの機能を試すことができます:wp_localize_script( $handle, $name, $data );
ドキュメントについては https://codex.wordpress.org/Function_Reference/wp_localize_script を参照してください。
コーデックスが言うように:
ローカライゼーションは主な用途ですが、通常はWordPressのサーバーサイドからしか取得できないデータをスクリプトで利用できるようにするために使用できます。
私は翻訳/ローカライズのためにそれを使わなければなりませんでした、しかしそれはあなたがjavascriptにあなたの動的な価値を「注入する」のを助けることができるように見えます。