我想在我的管理界面上使用最新的jQuery(和jQuery UI)版本(编辑我创建的特定帖子类型)。
我试过这个:
// jQuery 1.x
wp_register_script(\'jquery1x\', \'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js\', false, null, true);
// jQuery UI 1.8.4 PTBR
wp_register_script(\'jquery-ui-custom-pt_BR\', THEME_URL . \'js/jquery.ui.datepicker-pt-BR.js\', array(\'jquery1x\'), null, true);
// jQuery UI 1.8.4
wp_register_script(\'jquery-ui-custom\', THEME_URL . \'js/jquery-ui-1.8.4.custom.min.js\', array(\'jquery1x\', \'jquery-ui-custom-pt_BR\'), null, true);
// jQuery UI 1.8.4 CSS
wp_register_style(\'jquery-ui-custom-css\', THEME_URL . \'css/smoothness/jquery-ui-1.8.4.custom.css\');
wp_enqueue_style(\'jquery-ui-custom-css\');
wp_enqueue_script(\'jquery-ui-custom\');
它工作正常,但在其他WP管理页面上,我遇到了一些jQuery错误,因为jQuery的重写(因为它加载了两次)。
如果我“注销”jQuery并再次注册它(使用最新版本),它将无法工作。
这不是我第一次遇到这个问题。。。我只需要在WordPress管理界面上使用最新版本的jQuery,就可以使用Datepicker和Colorpicker等功能。。但直到现在我还不能用register_script
.
如果我用“jquery”名称注册它,它将不会更新,因为这一行上已经有WordPress加载的jquery:
<script type=\'text/javascript\' src=\'http://website.com/wp-admin/load-scripts.php?c=1&load=jquery,utils,nav-menu&ver=2b05c108d9016a4caa470b8edaf40953\'></script>
我不能插手这件事
load-scripts.php 文件更改文件名,因为我不想更改WordPress核心。
最合适的回答,由SO网友:Rarst 整理而成
从3.6版WordPress开始,主动阻止在admin中注销“关键”脚本。
对于设定的范围(在管理的特定部分加载较新的jQuery),通常加载jQuery的自定义副本并使用noConflict()
立即将其隔离在自己的变量中,以便在自定义JS代码中使用。
取消注册对您不起作用,因为默认情况下WP会在管理区域连接脚本。因此,当您从其他地方加载jQuery时,它就会崩溃。
您可以禁用串联以使其工作(根据需要添加条件):
add_action( \'admin_init\', \'jquery_admin\' );
function jquery_admin() {
global $concatenate_scripts;
$concatenate_scripts = false;
wp_deregister_script( \'jquery\' );
wp_register_script( \'jquery\', ( \'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js\' ), false, \'1.x\', true );
}
PS非常感谢从Google加载最新版本的技巧,我不知道:)