我正在制作一个插件,我有一个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 );
}
文件自定义js。php是这样的:
<?php header("Content-type: text/javascript"); ?>
$(document).ready(function(){
$.showBox({
message: \'<?php echo $description; ?>\',
});
});
我如何接受$描述?如果我将javascript放入wp\\u home()中,它将无法工作。
谢谢
SO网友:Andrew Bartel
您可以使用wp_localize_script() 将php变量传递给javascript。您可以在php中创建一个数组,然后将其作为第三个参数传递给函数。它将作为您使用第二个参数命名的对象。
首先,注册脚本。
wp_register_script( \'custom-name-js\', plugins_url( \'assets/custom-js.php\', __FILE__ ) );
其次,构建阵列并运行wp\\u 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文件中,将有一个名为js\\u object\\u name(或作为第二个参数传递给wp\\u localize\\u script的任何内容)的js对象,该对象的属性为description。
js_object_name.description