2013-04-28 44 views
0

我在WordPress中遇到了一個關於wp_enqueue_script()的奇怪事情,我想要發生的是通過在functions.php中添加一個動作鉤子來在頁面上添加一個腳本,但是當我這樣做時,不要再增加腳本的頁面上,但是當我把代碼作爲一個插件現在增加了腳本的頁面上WordPress WP入隊腳本問題

注:在functions.php的,當我在頁腳添加腳本:add_action('wp_footer','function_name');它工作正常,但當我將它添加到wp_head和init時,它不會在我將代碼放在functions.php上時添加腳本,但是當我將它作爲插件來使用時,即使將它添加到wp_head和init上,它也可以正常工作

我需要添加腳本INIT或WP_HEAD,但它不工作的時候,我把該代碼的functions.php我需要的腳本中部分的主題不是一個插件

//functions.php 
add_action('init', 'function_name'); 

function function_name(){ 
wp_enqueue_script('script_holder', get_template_directory_uri() . '/script.js'); 
} 

//as a plugin 
add_action('init', 'function_name'); 

function function_name() { 
    $plugin_location=WP_PLUGIN_URL.'/'.str_replace(basename(__FILE__),"",plugin_basename(__FILE__)); 
    if(!is_admin()){ 
     wp_enqueue_script('script_holder', $plugin_location . '/script.js'); 
    } 
} 

我知道它應該工作,即使在functions.php的,但我真的不知道爲什麼會出現這種情況 誰能幫我解釋一下我爲什麼會出現這種情況嗎?

非常感謝你

基本上這是我在做什麼:

add_action('init', 'override_jquery'); 

function override_jquery() { 
    if(!is_admin()){ 
     wp_deregister_script('jquery'); 
     wp_enqueue_script('nashgraphics_jquery_library', get_template_directory_uri() . '/bootstrap/js/jquery-1.9.0.min.js'); 
    } 
} 

回答

1

適當掛鉤的前端排隊腳本是wp_enqueue_scriptshttp://codex.wordpress.org/Plugin_API/Action_Reference/wp_enqueue_scripts

+0

感謝您的答覆,是的,我知道,但我真的需要回答我的問題,因爲我關心的是爲什麼它是否包括腳本,當我把代碼作爲一個插件,並且不包括腳本時,我把它放在函數上。php – 2013-04-29 04:36:07

+0

'init'在加載所有插件後觸發。你可以嘗試掛接到'plugins_loaded':http://codex.wordpress.org/Plugin_API/Action_Reference/plugins_loaded – diggy 2013-04-29 11:43:44

+0

也沒工作,請仔細閱讀上面的編輯,讓你知道究竟是什麼,我試圖做的。謝謝 – 2013-04-30 02:57:32

2

有可以發生幾件事情,但由於問題只發生在functions.php,所以人們會認爲這是與主題相關的。 你應該確保該主題有兩個:

wp_head() - (即將進行之前</head>

而且

wp_footer() -

(立即關閉</body>之前)如果沒有包括主題作者或者即使其中一個功能缺少主題,腳本也可能無法加載。 (和80%的插件都會有問題)。

而且,你沒有指定使用哪個主題(你自己的代碼?),如果它是一個子主題與否。

您正在使用get_template_directory_uri()哪些不能被子主題覆蓋,我不知道這是否是問題的一部分,但您可能也想嘗試使用,在許多情況下,這是更好的選擇。

看到您的更新:

這是一個非常不好的做法,用另一個withpout後備更換jQuery核心。 總之,你CA嘗試掉落!is_admin()條件,或者註銷,看你的網站代碼。 (我正在調試它,而在與在WP管理欄記錄的感覺..)

+0

是我試圖創建自己的母題,真的很奇怪,當我使用ADD_ACTION入隊的腳本(「初始化」,「前執行」);作爲一個WordPress插件它成功地包括腳本,但是當我在functions.php中做它不包括 – 2013-04-29 08:53:41

+1

你讀過我寫的劇本?你有wp_head()和wp_footer()嗎? – 2013-04-29 11:10:14

+0

是的我看了你的回覆我都wp_header()和wp_footer()在正確的地方,它應該是在裏面!is_admin因爲功能僅僅是前端和我的時候我不使用其他的問題!is_admin廢墟我的精選後期圖片上傳器,這是我使用is_admin除了前端目的之外的原因之一 – 2013-04-30 03:35:18