[英]PHP Variable Scope Issue
我正在为WordPress编写插件,但似乎无法实现目标。 它让我发疯! 这是没有类包装器的代码:
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');
}
}
我已经在shortcode函数中设置了该标志,但是没有将其传递给jw_add_js()函数。 在WP中进行调试有点麻烦。 任何建议将不胜感激。
更新:我在弄乱后找到了答案。 我必须注册我的脚本,然后将句柄存储在数组中。 然后,我使用wp_print_scripts()方法传递数组。 希望这会对某人有所帮助!
我在弄乱后找到了答案。 我必须注册我的脚本,然后将句柄存储在数组中。 然后,我使用wp_print_scripts()方法传递数组。 希望这会对某人有所帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.