2010-08-08 6 views
0

Je suis en train d'écrire un plugin pour WordPress mais je n'arrive pas à faire marcher mon drapeau. Ça me rend fou! Voici le code sans l'emballage de classe:PHP Variable Scope Numéro

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'); 
    } 


} 

J'ai mis le drapeau dans la fonction shortcode mais ça ne passe à la fonction jw_add_js(). C'est une sorte de chienne à déboguer dans WP. Tout conseil serait super apprécié.

Mise à jour: J'ai trouvé la réponse à cette question après avoir déconné. J'ai dû enregistrer mes scripts et ensuite stocker les poignées dans un tableau. Je passe ensuite le tableau avec la méthode wp_print_scripts(). J'espère que cela aidera quelqu'un!

+0

* Les méthodes sont-elles appelées statiquement? –

+0

le code me semble bien, êtes-vous sûr que ce jw_html5_shortcode est appelé en premier? – bumperbox

+0

Oui, il va afficher la valeur 1 lorsque je vérifie la page, donc la méthode la met à true. – wavyGravy

Répondre

0

J'ai trouvé la réponse à cette question après avoir déconné. J'ai dû enregistrer mes scripts et ensuite stocker les poignées dans un tableau. Je passe ensuite le tableau avec la méthode wp_print_scripts(). J'espère que cela aidera quelqu'un!