我使用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);
最合适的回答,由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\' ));
}