Передача шорткода $ atts из PHP в Javascript с помощью wp_localize_script - PullRequest
1 голос
/ 19 ноября 2011

Я хочу использовать Wordpress 'wp_localize_script для передачи шорткода $atts, доступного скрипту javascript.

Кажется, что 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
}

Как получить доступ к шорткоду $atts в функции, содержащей wp_localize_script, когда wp_localize_scriptдолжен (?) содержать строку wp_enequeue_script?

Ответы [ 2 ]

1 голос
/ 01 июня 2012
global $atts;

затем извлеките значения в вашей функции.

extract($atts);

Надеюсь, это работает для вас.Удачи

0 голосов
/ 28 марта 2012

Не лучше ли создать поле параметра в csf_shortcode_ajax_frontend () с update_option ("this_is_a_field", $ atts), а затем обращаться к тому же полю параметра базы данных в csf_enqueue () при вызове хука wp_localize_script ()?

...