我正在开发一个插件,我想让数据可用于由我的一个短代码执行的客户端JS代码。wp_localize_script
这似乎是一种显而易见的方法,但对我来说并不适用:包含了我的脚本,但没有JS数据。数据取决于查询字符串中由短代码读取的值。我怀疑这与WP生命周期中脚本和短代码的相对计时有关。我有一些JS代码没有在一个短代码中使用,该代码很高兴使用wp_localize_script
.
缩写插件文件:
function shortcode_orderitem() {
$id = intval($_GET[\'id\']);
$productData = retrieveSingleProductData($id);
wp_localize_script(\'orderitem\', \'productData\', $productData); //THIS DOES NOT WORK
return orderItem_buildHTML($productData);
}
function enqueue_general_scripts()
{
wp_enqueue_script(\'orderitem\', plugin_dir_url(__FILE__) . \'client/orderitem.js\', [\'jquery\']);
wp_enqueue_script(\'mainbag\', plugin_dir_url(__FILE__) . \'client/mainbag.js\', [\'jquery\']);
$url = admin_url( \'admin-ajax.php\' );
wp_localize_script(\'mainbag\', \'bagParams\', [\'url\' => $url]); //THIS WORKS
}
add_shortcode(\'orderitem\', "shortcode_orderitem");
add_action( \'wp_enqueue_scripts\', \'enqueue_general_scripts\' );
你不能使用
wp_localize_script
直接在这样的短代码中?我错过了什么吗?有办法绕过它吗?提前感谢!