2012-02-02 59 views
0

好,我一直在處理這個代碼,現在一個星期......我不想給那麼請幫我在這裏:)如何與wp_enqeue_scripts在WordPress插件工作

所以我有這個JavaScript文件我正試圖將其納入我的插件。當我嘗試使用wp_enqeue_script函數時,它根本不起作用,但是當我使用Include函數時,它完美地工作,但只能在我的本地服務器上運行。如果將插件安裝在託管服務器上,它甚至不會安裝插件。哪裏有問題?

該文件位於/includes/links.js

我如何獲得WordPress的加載這個腳本,我在哪裏有呢?我試圖檢查wordpress codex,但讓我更加困惑。如果您需要檢查代碼,請告訴我。

在此先感謝。

+1

給我們看一些代碼... – 2012-02-02 16:51:53

回答

0

的兩大部件得到一個腳本加載:

<?php wp_register_script('script-handle', 'script-location'); ?> 

<?php wp_enqueue_script('script-handle'); ?> 

wp_enqueue_script不會加載腳本,除非它已先行註冊(注意,WP附帶了許多預註冊腳本,如jQuery的,所以在這種情況下,所有你需要做的是排隊劇本。但是,對於未綁定在WP中的自定義腳本,您需要先註冊它)。

因此,基於這個問題,假設你已經將腳本放在你的THEME目錄下的文件夾「includes」中(例如wp-content/themes/my-theme/includes/links.js ),那麼這就是你會在你的主題的functions.php文件做什麼:

<?php 
    function my_theme_register_scripts() { 
     wp_register_script('my-script-handle', get_bloginfo("template_url") . '/includes/links.js'); 
     wp_enqueue_script('my-script-handle'); 
    } 

    // If you want to use the script on the FRONT end of the site, then.... 
    add_action('init', 'my_theme_register_scripts'); 
    // If you want to use the script on the BACK end of the site.... 
    add_action('admin_init', 'my_theme_register_scripts'); 
?> 

而且大衛 - 是正確的 - 你需要確保你的主題既有wp_head()和wp_footer()調用在其中,否則的東西不會按預期的那樣工作...

+0

好的感謝您的回覆cale_b ...我可以將它用於插件嗎? – 2012-02-03 18:20:37

+0

是的。這可以在主題或插件文件中工作。祝你好運! – 2012-02-03 19:06:41

0

那麼首先,檢查是否正在加載的腳本,如果沒有則檢查兩件事情:

1)您排隊得當wp_enqueue_script('script name',get_stylesheet_directory_uri() . '/js/links.js','','',false);假設你的腳本是在包括您的當前主題的文件夾

2 )你在你的頭wp_head()地方(有假設你裝在頭部其他明智的,你需要wp_footer()但實際上你應該有兩個