2017-02-04 47 views
0

我想創建一個使用jQuery爲按鈕創建點擊事件的JavaScript文件。測試我的第一個插件 - 腳本未加載WordPress

但我不能讓它工作,我甚至不知道腳本是否正在加載。我已經在頁面源中搜索它,但它不存在,所以這表明它根本沒有加載。我是插件和jQuery的新手,但我遵循教程並複製了下面的代碼。

<?php 
/* 

Plugin Name: PansHousePlugin 
Plugin URI: http://pans-house.com 
Description: Adds OnClick and Scroll Functionality 
Version: 1.0 
Author: Paul Leppard 
Author URI: http://pans-house.com 

*/ 


add_action('wp_enqueue_scripts', 'load_js'); 

    function load_js() { 
wp_register_script('click_scroll', plugins_url('click_scroll.js', __FILE__), array('jQuery'), true); 
wp_enqueue_script('click_scroll'); 
} 




?> 

和click_scroll.js文件,該文件在同一文件夾中plugin.php文件

(function($){ 

$(function(){ 
    $("#gopricing").hide(); 
    $(".showpricingbutton").on("click", function(){ 
    $("#gopricing").toggle(); 
    }); 
}); 

}(jQuery)); 

就像我說的,這是完全一樣的教程說。該插件被激活,沒有任何錯誤,但與身份證gopricing的div不隱藏和按鈕不會做任何事情點擊它,所以我假設該腳本尚未加載。

謝謝

+0

在Web瀏覽器中按Ctrl + U鍵。調出源代碼。現在按Ctrl + F並搜索click_scroll.js 如果你找不到它,那麼它不會加載。它也可能正在加載,但路徑不正確。所以可能必須使用/click_scroll.js –

+0

謝謝,我沒有檢查頁面源代碼,並且click_scroll.js文件不在/ plugins_url中。 –

回答

1

您列出了一個不存在的依賴關係。

jQuery是庫的名稱;您需要參考它來裝載庫的手柄是jquery。當我相信你試圖告訴JS加載頁腳時,你也將版本號設置爲true。

更改此:

wp_register_script('click_scroll', plugins_url('click_scroll.js', __FILE__), array('jQuery'), true); 

要這樣:

wp_register_script('click_scroll', plugins_url('click_scroll.js', __FILE__), array('jquery'), false, true); 

你的下一個問題是你的JS。最後一行需要一個調整的支架,你應該等待ready事件:

(function($) { 

    $(document).ready(function() { 
     $("#gopricing").hide(); 
     $(".showpricingbutton").on("click", function() { 
      $("#gopricing").toggle(); 
     }); 
    }); 

})(jQuery); 

延伸閱讀:https://developer.wordpress.org/reference/functions/wp_enqueue_script/

+2

他可能還需要'dirname()'函數'wp_register_script('click_scroll',plugins_url('click_scroll.js',dirname(__ FILE__)),array('jquery'),false,true);' 參考plugins_url from codex https://codex.wordpress.org/Function_Reference/plugins_url –

+1

@WebDevGuy這取決於如何設置插件。如果插件是插​​件目錄中的單個PHP文件,那麼作者會希望使用'dirname()'。通常,雖然插件是在plugins目錄的子目錄中設置的,在這種情況下'dirname()'不適合。有了這個說法的條目不是特別措辭 –

+0

神奇,它現在的作品。陡峭的學習曲線毫無疑問地等待着我,但現在我的第一個插件能夠工作並達到我期待的結果。謝謝Nathan。 –