使用wp_localize_script将短代码$atts从PHP传递到Javascript


Passing Shortcode $atts from PHP to Javascript using wp_localize_script

我想使用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);
}

我想用短代码"$atts"替换$myvars

我添加的短代码如下;

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有(?(包含wp_enequeue_script行时,如何访问包含wp_localize_script的函数中的短代码$atts

global $atts;

然后提取函数中的atts。

extract($atts);

希望这对你有用。好运

调用wp_localize_script((钩子时,最好在csf_shortode_ajax_frontend((中用update_option("this_is_a_field",$atts(创建一个选项字段,然后访问csf_enqueu((中的同一数据库选项字段,这不是最好的吗?