dequeue not work

时间:2015-06-30 作者:Amro Shalaby

我使用plugin 包含此代码,我想将js位置更改为位于我的模板目录中,而不是位于插件中,而无需编辑插件文件

class jqueryTimelinrLoad  {

  public function registerScripts()

    {

        if (!wp_script_is( \'jquery\', \'registered\' )) wp_register_script( \'jquery\' );



        wp_deregister_script(\'jquery.timelinr\');

        wp_register_script(\'jquery.timelinr\', JQTL_BASE_URL . \'/assets/js/jquery.timelinr-1.0.js\', array( \'jquery\' ));

    }
     public function loadScripts() {

            if (!is_admin()) {

                if (!wp_script_is( \'jquery\', \'queue\' )) wp_enqueue_script( \'jquery\' );



                wp_enqueue_script(\'jquery.timelinr\', JQTL_BASE_URL . \'/assets/js/jquery.timelinr-1.0.js\', array( \'jquery\' ));

            }

        }
}
我尝试了这个,它添加了新链接,但旧链接仍然存在

function drw_timeline_js () {

        $result = $GLOBALS["jqueryTimelinrLoad"]->loadScripts();


        wp_dequeue_script(\'jquery.timelinr\');
        wp_deregister_script( \'jquery.timelinr\');


        wp_enqueue_script(\'jquery.timelinr2\', get_template_directory_uri() . \'/js/jquery.timelinr-1.0.js\', array( \'jquery\' ));

        return $result;
    }
add_action(\'init\', \'drw_timeline_js\', 1);

2 个回复
最合适的回答,由SO网友:cybmeta 整理而成

脚本应在上排队wp_enqueue_scripts 动作挂钩,在init 行动所以退出队列init 无法工作,因为SRIPT尚未排队。在打印排队脚本之前,wp_print_scripts 此时会触发操作,以便您可以安全地退出或注销脚本:

add_action( \'wp_print_scripts\', \'drw_timelinr_dequeue\' );
function drw_timelinr_dequeue () {

     wp_dequeue_script(\'jquery.timelinr\');

}

add_action(\'wp_enqueue_scripts\', \'drw_timeline_js\');
function drw_timeline_js () {

    wp_enqueue_script(\'jquery.timelinr2\', get_template_directory_uri() . \'/js/jquery.timelinr-1.0.js\', array( \'jquery\' ));


}

SO网友:s_ha_dum

如果loadScripts() 已正确注册/排队(发布的代码未显示所使用的挂钩),那么它是否已在上排队wp_enqueue_scripts which runs well after init 因此,您正在尝试删除尚未添加的内容,这些内容将在以后添加。假设:

add_action(\'wp_enqueue_scripts\', \'drw_timeline_js\', PHP_INT_MAX);
PHP_INT_MAX 将确保您的代码在该挂钩上最后运行。

我也不明白$result = $GLOBALS["jqueryTimelinrLoad"]->loadScripts(); 线路或用于return 函数中的行。

结束

相关推荐

将目录符号链接到wp-Content/Themes

是否可以将我的项目文件夹中的目录符号链接到我的wp content/themes文件夹,该文件夹位于名为chassis的流浪设置中:https://github.com/Chassis/Chassis ?我尝试使用ln-s进行符号链接,但我的wordpress安装没有识别它,因为我没有在外观>主题管理面板中看到它。我想知道是否有可能做我想做的事。我假设这一直都在做,但为什么它对我不起作用呢?