使用快捷码时的wp_Register_script和wp_Register_style

时间:2012-12-02 作者:chris_r

嗨,我用了一个很棒的教程http://scribu.net/wordpress/optimal-script-loading.html 当使用名为lightbox的短代码时,我在加载脚本时遇到了问题。这里是我的代码。我在页面上,当它被调用时,我想与某人检查一下它是否写得正确。

class fancy{
    static $add_script;

    static function init() {
        add_shortcode(\'lightbox\', array(__CLASS__, \'handle_shortcode\'));

        add_action(\'init\', array(__CLASS__, \'register_script\'));
        add_action(\'wp_footer\', array(__CLASS__, \'print_script\'));
    }

    static function handle_shortcode($atts) {
        self::$add_script = true;

        // actual shortcode handling here
    }

    static function register_script() {
    wp_register_script(\'fancy-wheel\', get_stylesheet_directory_uri(\'/js/jquery.mousewheel-3.0.6.pack.js\', __FILE__), array(\'jquery\'), \'3.06\', true);
    wp_register_script(\'fancybox\', get_stylesheet_directory_uri(\'/js/jquery.fancybox.js\', __FILE__), array(\'jquery\'), \'1.0\', true);
    wp_register_script(\'fancy-buttons\', get_stylesheet_directory_uri(\'/js/jquery.fancybox-buttons.js\', __FILE__), array(\'jquery\'), \'1.0\', true);
    wp_register_script(\'fancy-media\', get_stylesheet_directory_uri(\'/js/jquery.fancybox-media.js\', __FILE__), array(\'jquery\'), \'1.0\', true);
    wp_register_script(\'fancy-thumbs\', get_stylesheet_directory_uri(\'/js/jquery.fancybox-thumbs.js\', __FILE__), array(\'jquery\'), \'1.0\', true);
    wp_register_style(\'fancy-css\', get_template_directory_uri(\'/css/jquery.fancybox.css\', __FILE__), array(\'css\'), \'1.0\', true); 
    wp_register_style(\'fancy-buttons\', get_template_directory_uri(\'/css/jquery.fancybox-buttons.css\', __FILE__), array(\'css\'), \'1.0\', true); 
    wp_register_style(\'fancy-thumbs\', get_template_directory_uri(\'/css/jquery.fancybox-thumbs.css\', __FILE__), array(\'css\'), \'1.0\', true); 

}
static function print_script() {
    if ( ! self::$add_script )
        return;

    wp_print_scripts(\'fancy-wheel\',\'fancybox\',\'fancy-buttons\',\'fancy-thumbs\',\'fancy-css\',\'fancy-buttons\',\'fancy-thumbs\');
    }
}

fancy::init();

1 个回复
SO网友:Matthew Boynes

您的脚本和样式都共享相同的句柄“fancybox”,这应该是唯一的,我认为这是您的问题。尝试以下操作:

wp_register_script( \'mousewheel\', get_stylesheet_directory_uri(\'/js/jquery.mousewheel-3.0.6.pack.js\', __FILE__), array(\'jquery\'), \'3.06\', true );
wp_register_script( \'fancybox-script\', get_stylesheet_directory_uri(\'/js/jquery.fancybox.js\', __FILE__), array(\'jquery\'), \'1.0\', true );
wp_register_script( \'fancybox-pack\', get_stylesheet_directory_uri(\'/js/jquery.fancybox.pack.js\', __FILE__), array(\'jquery\'), \'1.0\', true );
wp_register_script( \'fancybox-buttons\', get_stylesheet_directory_uri(\'/js/jquery.fancybox-buttons.js\', __FILE__), array(\'jquery\'), \'1.0\', true );
wp_register_script( \'fancybox-media\', get_stylesheet_directory_uri(\'/js/jquery.fancybox-media.js\', __FILE__), array(\'jquery\'), \'1.0\', true );
wp_register_script( \'fancybox-thumbs-script\', get_stylesheet_directory_uri(\'/js/jquery.fancybox-thumbs.js\', __FILE__), array(\'jquery\'), \'1.0\', true );
wp_register_style( \'fancybox-style\', get_template_directory_uri(\'/css/jquery.fancybox.css\', __FILE__), array(\'css\'), \'1.0\', true );
wp_register_style( \'fancybox-buttons\', get_template_directory_uri(\'/css/jquery.fancybox-buttons.css\', __FILE__), array(\'css\'), \'1.0\', true );
wp_register_style( \'fancybox-thumbs-style\', get_template_directory_uri(\'/css/jquery.fancybox-thumbs.css\', __FILE__), array(\'css\'), \'1.0\', true );
然后。。。

wp_print_scripts( array( \'mousewheel\', \'fancybox-script\', \'fancybox-pack\', \'fancybox-buttons\', \'fancybox-media\', \'fancybox-thumbs-script\', \'fancybox-style\', \'fancybox-buttons\', \'fancybox-thumbs-style\' ) );

结束

相关推荐

qtranslate arabic shortcode?

我在我的网站上使用了qTranslate。四种语言选择。English Russian Turkish Arabic 但阿拉伯语不行。我尝试了以下url:site.com/ar 但它仍然不起作用。显示如下错误:警告:无法修改标题信息-标题已由/home/useruser/public\\u html/www.site.com/blog/wp-content/themes/tema/index.php:1)在/home/useruser/public\\u html/www