2017-02-04 4 views
0

Я пытаюсь создать файл JavaScript, который использует jQuery для создания события щелчка для кнопки.Проверка моего первого плагина - скрипт не загружается 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)); 

Как я сказал, что это именно так, как сказано в учебнике. Плагин активирован без каких-либо ошибок, но div с id gopricing не скрыт, и кнопка ничего не делает при нажатии на нее, поэтому я предполагаю, что сценарий не был загружен.

Благодаря

+0

в веб-браузере нажмите Ctrl + U. Поднимите исходный код. теперь ctrl + f и search click_scroll.js , если вы не можете найти его, то это не загрузка. он может также загружаться, но путь неверен. так что /click_scroll.js, возможно, придется использовать –

+0

Спасибо, я проверил источник страницы, а файл click_scroll.js не существует с и без/в plugins_url. –

ответ

1

Вы перечисляя зависимость, которая не существует.

jQuery - название библиотеки; дескриптор, который вам нужно сослаться на него, чтобы загрузить библиотеку, но составляет jquery. Вы также устанавливаете номер версии в true, когда я полагаю, что вы пытались сказать JS для загрузки в нижнем колонтитуле.

Изменить это:

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. В последней строке необходимо скорректировать в скобках, и вы должны ждать готового события:

(function($) { 

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

})(jQuery); 

Дальнейшее чтение: https://developer.wordpress.org/reference/functions/wp_enqueue_script/

+2

Ему также может понадобиться 'dirname()' function 'wp_register_script ('click_scroll', plugins_url ('click_scroll.js', dirname (__ FILE__)), array ('jquery'), false, true);' reference plugins_url from codex https://codex.wordpress.org/Function_Reference/plugins_url –

+1

@WebDevGuy Это будет зависеть от того, как был настроен плагин. Если плагин был единственным файлом PHP в каталоге плагинов, вы правы, автор хотел бы использовать 'dirname()'. Обычно, хотя плагин настраивается в поддиректории каталога плагинов, в этом случае 'dirname()' не подходит. При этом сказано, что запись в кодексе не особенно хорошо написана. –

+0

Фантастический, теперь он работает. Крутая кривая обучения не вызывает сомнений, но теперь мой первый плагин работает и достигает результата, который я искал. Спасибо Натан. –

Смежные вопросы