2010-08-08 3 views
0

Я пишу плагин для WordPress, но, похоже, я не могу получить свой флаг. Это сводит меня с ума! Вот код, без класса-обертки:PHP Variable Scope Issue

static $js_flag; 

function init() 
{ 
    add_shortcode('jw_html5', array(__CLASS__, 'jw_html5_shortcode')); 
    add_action('init', array(__CLASS__, 'jw_add_js')); 
} 

public function jw_html5_shortcode($atts, $content = null) 
{ 

    self::$js_flag = true; 
    $vid = ''; 

    extract(shortcode_atts(array(
     'src' => '/vids/video.mp4', 
     'width' => 480, 
     'height' => 320 
     ), $atts)); 

    $vid = "<video id='player' src='$src' width='$width' height='$height' type='video/mp4'> </video>"; 

    return self::$js_flag; 
    //return $vid; 
} 


public function jw_add_js() 
{ 


    if(self::$js_flag) 
    { 
     wp_register_script('jw_player', plugins_url('scripts/player.php', __FILE__), array('jquery'), '.01', true); 
     wp_register_script('jw_player_script', plugins_url('scripts/jquery.jwplayer.js', __FILE__), array('jquery'), '.01', false); 
     wp_register_script('jw_playlist', plugins_url('scripts/jquery.playlist.js', __FILE__), array('jquery'), '.01', false); 

     wp_enqueue_script('jw_player_script'); 
     wp_enqueue_script('jw_playlist'); 
     wp_enqueue_script('jquery'); 
     wp_enqueue_script('jw_player'); 
    } 


} 

Я установил флаг в функции Сокращенный, но это не передавая его в jw_add_js функции(). Это своего рода сука для отладки в WP. Любые советы будут оценены по достоинству.

Обновление: Я нашел ответ на этот вопрос после беспорядка. Мне пришлось регистрировать свои скрипты, а затем хранить дескрипторы в массиве. Затем я передаю массив с помощью метода wp_print_scripts(). Надеюсь, это поможет кому-то!

+0

* Есть ли методы, называемые статически? –

+0

код выглядит хорошо для меня, вы уверены, что сначала вызывается jw_html5_shortcode? – bumperbox

+0

Да, он выведет значение в 1, когда я проверю страницу, чтобы метод установил ее в true. – wavyGravy

ответ

0

Я нашел ответ на этот вопрос после беспорядка. Мне пришлось регистрировать свои скрипты, а затем хранить дескрипторы в массиве. Затем я передаю массив с помощью метода wp_print_scripts(). Надеюсь, это поможет кому-то!

 Смежные вопросы

  • Нет связанных вопросов^_^