2011-03-12 66 views
0

我想調用多個使用(一個WordPress功能)wp_enqueue_script的JQuery腳本。對JQuery的調用完美,但對cufon的第二次調用卻沒有。我不是一個PHP或JavaScript專家 - 任何人都可以伸出援助之手,是否有最佳實踐方法?結合調用多個javascript

function my_init_method() { 
    if (!is_admin()) { 
     wp_deregister_script('jquery'); 
     wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js'); 
     wp_enqueue_script('jquery'); 
    } 
}  

add_action('init', 'my_init_method'); 

function my_init_method2() { 
    if (!is_admin()) { 
     wp_deregister_script('cufon'); 
     wp_register_script('cufon', 'http://mydomain.com/wp-content/themes/simplefolio/js/cufon-yui.js'); 
     wp_enqueue_script('cufon'); 
    } 
}  

add_action('init', 'my_init_method2'); 
+0

需要更多的細節。 「第二個電話不起作用是什麼意思?」它以什麼方式失敗? cufon腳本的URL是否有效(嘗試像加載普通網頁一樣加載它)?瀏覽器控制檯中的任何錯誤消息?如何鏈接到顯示問題的頁面? – 2011-03-12 17:01:27

+0

你真的需要2個js框架嗎? – yoda 2011-03-12 17:03:55

回答

1

我的方式來deregister_script和enqueue_script選擇作爲跟隨(隨意將其調整到您的需要):

function my_deregister_javascript() { 
    wp_deregister_script ('jquery-ui-tabs'); 
    wp_deregister_script ('jquery-ui-core'); 
    wp_deregister_script ('jquery-cycle'); 
    wp_deregister_script ('hoverintent'); 
    wp_deregister_script ('superfish'); 
    wp_deregister_script ('jquery-validate'); 
    wp_deregister_script ('arras_add_header_js'); 
    wp_deregister_script ('arras_add_slideshow_js'); 
    wp_deregister_script ('ratings_scripts'); 
    wp_deregister_script ('wp-postratings'); 
    wp_deregister_script ('sharing-js'); 
    wp_deregister_script ('jquery'); 
    wp_enqueue_script ('jquery', '/js/mymusicplug.js', '', '1.4.4'); 
} 
if (!is_admin()) { 
add_action('wp_print_scripts', 'my_deregister_javascript', 100); 
} 

正如你看到的,我的「(!is_admin()),如果」相對於腳本'輸出'。我也註銷了,沒有註冊 - 通過wp_register_script註冊腳本會導致完全崩潰 - 然後排入您的組合/縮小JS所在的腳本文件。這對我來說確實很有用,結果是一個143,000+ b的JS文件。我知道,它可能看起來像一個JS文件上的巨大標籤,但通過簡單的事情,如通過'deregister_script'在WP中合併JS,它減少了超過30多個本地和外部JS的HTTP請求。我的頁面上最重的JS現在包含頁腳中的分析和AdSense代碼。而且,我只需要大約10-15個請求。

偉大的提示:結合CSS也是,1個CSS文件,1個JS文件,你的頁面會飛!

希望這有助於。

+0

感謝隊友,這非常有幫助。我試圖正確排列所有腳本的原因是我想實現'JS&CSS Script Optimizer'插件,因此我不必手動合併所有文件。花了我一段時間,但我到了那裏! – toomanyairmiles 2011-03-15 15:13:12

0

我不完全相信你在找什麼在這裏,但它看起來像你可以結合你的兩個初始化語句簡化事情

function my_init_method() { 
    if (!is_admin()) { 
     wp_deregister_script('jquery'); 
     wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js'); 
     wp_enqueue_script('jquery'); 
     wp_deregister_script('cufon'); 
     wp_register_script('cufon', 'http://mydomain.com/wp-content/themes/simplefolio/js/cufon-yui.js'); 
     wp_enqueue_script('cufon'); 
    } 
}  

add_action('init', 'my_init_method'); 

你也應該確保http://mydomain.com/wp-content/themes/simplefolio/js/cufon-yui.js文件存在並可以從您的瀏覽器訪問。

+0

感謝隊友,事實證明我誤解了註銷功能 - 它只是包含在wordpress中的腳本需要 - 因爲cufon不是阻止腳本加載。謝謝你的幫助! – toomanyairmiles 2011-03-12 19:21:50