我想使用Wordpress'wp_localize_script
来传递javascript脚本可用的短代码$atts
。
似乎wp_localize_script
只能在我wp_enqueue_script
引用脚本的同一个函数中工作。
我在另一个函数中访问短代码$atts
。
function csf_enqueue () {
//other enqueued scripts
wp_enqueue_script( 'csf_script_jquery', plugins_url( 'js/path/to/file', __FILE__ ), array ( 'jquery', 'jquery-ui-core') );
$myvars = array('value' => 'one');
wp_localize_script('csf_map_script_jquery', 'myVars', $myvars);
}
我想将$myvars
替换为短代码“$atts
。
我添加短代码如下;
add_shortcode("csf_map", "csf_shortcode_ajax_frontend");
在csf_shortcode_ajax_frontend()
中,我访问了短代码$atts
。
function csf_shortcode_ajax_frontend( $atts, $content = null ) {
$atts = shortcode_atts( array (
'width'=> 600,
'height'=> 400,
'myinfo' => 'blah'
), $atts );
//continues
}
当wp_localize_script有(?)包含$atts
行时,如何访问包含wp_localize_script
的函数中的短代码wp_enequeue_script
?
答案 0 :(得分:1)
global $atts;
然后在你的函数中提取atts。
extract($atts);
希望这适合你。 祝你好运
答案 1 :(得分:0)
使用update_option(“this_is_a_field”,$ atts)在csf_shortcode_ajax_frontend()中创建一个选项字段,然后在调用wp_localize_script()钩子时访问csf_enqueue()中的相同数据库选项字段不是最好的吗? / p>