2013-03-14 25 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

相關問題