我有这部分代码,用于加载jquery的自定义版本
wp_deregister_script(\'jquery\');
wp_register_script(\'jquery\', ("http://code.jquery.com/jquery-latest.min.js"), false, \'\');
wp_enqueue_script(\'jquery\');
一切正常,但如果我打开由此代码加载的媒体上载管理器
wp_enqueue_script(\'media-upload\');
wp_enqueue_script(\'thickbox\');
wp_enqueue_style(\'thickbox\');
并由此触发
<script language="JavaScript">
jQuery(document).ready(function() {
jQuery(\'#upload_image_button\').click(function() {
formfield = jQuery(\'#upload_image\').attr(\'name\');
tb_show(\'\', \'media-upload.php?type=image&TB_iframe=true\');
return false;
});
window.send_to_editor = function(html) {
imgurl = jQuery(\'img\',html).attr(\'src\');
jQuery(\'#upload_image\').val(imgurl);
tb_remove();
}
});
</script>
<label for="upload_image">
<input id="upload_image" type="text" size="36" name="upload_image" value="<?php ?>" />
<input id="upload_image_button" type="button" value="Upload Image" />
<br />Enter an URL or upload an image for the banner.
</label>
灯箱将打开并显示所有选项,但当我选择“上载图像”或转到媒体库并从中选择图像时,什么都不会发生。
如果我删除了自定义jquery,那么媒体上传器就可以正常工作。但是我拥有的jquery ui代码不起作用,尽管我正在加载jquery ui脚本,所以我必须加载我的自定义最新版本的jquery。
是否有任何解决方案可以让媒体上传和jquery ui在插件管理面板的同一页面上工作?
SO网友:mrwweb
许多人认为取消注册/重新注册jQuery是一种不好的做法,尽管使用CDN版本可以提高性能(如果要使用CDN,我经常看到Google的版本,而不是jQuery)。然而,如果要这样做,您真的应该只在前端这样做,这样至少管理员可以正确地假设正在使用当前的WP预加载jQuery版本。
因此,请将您的脚本切换到这一点,我怀疑您的问题可能会结束:
function my_custom_scripts() {
if( !is_admin() ) {
wp_deregister_script(\'jquery\');
wp_register_script(\'jquery\', ("http://code.jquery.com/jquery-latest.min.js"), false, \'\');
wp_enqueue_script(\'jquery\');
}
}
add_action( \'wp_enqueue_scripts\', \'my_custom_scripts\' );