2013-03-14 56 views
0

我有一个WordPress站点(3.5.1),我想将日期选择器添加到我的插件中。默认情况下,这不起作用,所以我搜索周围,发现我不得不使用wp_register_script()wp_enqueue_script()加载库。添加脚本后,我有一个日期选择器。完善。当我将jQueryUI添加到它时,Wordpress会中断

我想更改小部件布局,发现它已损坏。我能够拖动小部件,但是当它们被放弃时,它们会“冻结”。我试图关闭我添加的jQuery库。小部件模块再次正常工作,但我的日期选择器不再工作。

所以,我有这样的代码中的functions.php:

add_action('init', 'change_jquery'); 

function change_jquery() { 

    wp_deregister_script('jquery'); 
    wp_deregister_script('jquery-ui-core'); 

    wp_register_script('jquery',  '//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js', false, '1.9.0'); 
    wp_register_script('jquery-ui-core', '//ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js', false, '1.10.0'); 
    wp_register_style('jquery-ui-css', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/ui-lightness/jquery-ui.css'); 

    wp_enqueue_script('jquery'); 
    wp_enqueue_script('jquery-ui-core'); 
    wp_enqueue_style('jquery-ui-css'); 
} 

没有人有任何的想法是什么原因造成我的问题?也许我宣布了双库?我对此很陌生,也不知道在哪里寻找问题。

+0

任何javascript错误? – Jrod 2013-03-14 20:54:24

+0

如果*不注销捆绑的WP脚本,该怎么办?请参阅:http://codex.wordpress.org/Function_Reference/wp_enqueue_script – brasofilo 2013-03-14 21:10:04

回答

0

你应该使用wp_enqueue_scripts钩为您的操作

add_action('wp_enqueue_scripts', 'change_jquery'); 

这可能不会解决您的问题,但仍然是用于enqueue'ing脚本正确的钩子。

0

如果日期选择器是指用于对插件而不是后端的前端,使用is_admin()条件标记为仅加载它在前端(未管理面板):

function change_jquery() { 
    if (!is_admin()) { 
     wp_deregister_script('jquery'); 
     wp_deregister_script('jquery-ui-core'); 

     wp_register_script('jquery',  '//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js', false, '1.9.0'); 
     wp_register_script('jquery-ui-core', '//ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js', false, '1.10.0'); 
     wp_register_style('jquery-ui-css', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/ui-lightness/jquery-ui.css'); 

     wp_enqueue_script('jquery'); 
     wp_enqueue_script('jquery-ui-core'); 
     wp_enqueue_style('jquery-ui-css'); 
    } 
} 
add_action('wp_enqueue_scripts', 'change_jquery'); 
0

据是我可以告诉,这可能是一个JavaScript错误。 WordPress在处理jQuery的$变量时非常糟糕。有两件事你可以做:

1)尝试添加文件,你用'jQuery'代替所有'$'。注意'Q'必须用首都来写,'j'不是首都。这对我有效。例如:

//Original javascript in wordpress. 
function some_function(){ 
    $('#some_id').click('some_function'); 
} 

//Adapted javascript in wordpress. 
function function(){ 
    jQuery('#some_id').click('some_function'); 
} 

2)你可以尝试创建jQuery的无冲突包装。我还没有测试过,但它应该工作。你可以找到更多信息here

相关问题