2013-10-11 3 views
1

Я чувствую, что я определенно пропустил что-то простое здесь ... но для жизни меня не может найти то, что мне не хватает.Как правильно использовать скрипты jQuery в Wordpress?

Я являюсь «плохой привычкой» включать функции jQuery непосредственно в файл header.php (среди других мест). Это, как я понимаю, неодобрительно, и функции должны храниться в отдельном файле, используя функцию wp_enqueue для их загрузки (если я правильно ее понимаю).

Я пытаюсь следующее решение дано здесь: How do I add a simple jQuery script to WordPress?

Я имею эту простую функцию в моем header.php, который должен обстрелять подготовить документ:

<script> 
    // Scroll to Top 
    jQuery(document).ready(function() { 
     // Force element to hidden state when page loads 
     jQuery('.scroll-to-top').hide(); 

     // Check to see if the window is top if not then display button 
     jQuery(window).scroll(function() { 
      if (jQuery(this).scrollTop() > 200) { 
       jQuery('.scroll-to-top').fadeIn(); 
      } else { 
       jQuery('.scroll-to-top').fadeOut(); 
      } 
     }); 
     //Click event to scroll to top 
     jQuery('.scroll-to-top').click(function() { 
      jQuery('html, body').animate({ scrollTop: 0 }, 800); 
      return false; 
     }); 
    }); 
</script> 

Так делать вещи " правильно ", я вынимаю код и помещаю его в myScripts.js (конечно же, с помощью скриптов). В моем файле functions.php, я добавил этот код:

<?php 
    function add_my_script() { 
     wp_enqueue_script(
      'myScripts', // name your script so that you can attach other scripts and de-register, etc. 
      get_template_directory_uri() . '/js/myScripts.js', // this is the location of your script file 
      array('jquery') // this array lists the scripts upon which your script depends 
     ); 
    } 

    add_action('wp_enqueue_scripts', 'add_my_script'); 
?> 

Но когда я загружаю мою страницу, скрипт больше не работает.

EDIT

Спасибо за помощь до сих пор ... меняющегося эту строку:

add_action('wp_enqueue_scripts', 'myScripts'); 

к этому:

add_action('wp_enqueue_scripts', 'add_my_script'); 

разрешил ошибку увидеть на этой странице.

К сожалению, код не работает на этой странице. Я предполагаю, что это (документ). Уже он должен срабатывать автоматически (как это было всегда, когда я включал его напрямую), но это не происходит, когда я включаю скрипт таким образом. Ух ... мысли?

+1

Точно как @nevercode говорит. 'myScripts' ** не равно **' add_my_script'. Кроме того, поместите знак доллара здесь 'jQuery (document) .ready (function ($)', поэтому вы можете использовать '$ ('# div')' на протяжении всего скрипта. – brasofilo

ответ

2

см wp_enqueue_script Documentation

wp_enqueue_script ($ ручка, $ ЦСИ $ DEPS, $ вер, $ in_footer) является правильной функцией.

Ваш первый параметр должен быть именем функции обратного вызова.

+0

Я думал, что это то, что у меня есть. первый параметр, $ handle, является «myScripts» ... или я что-то упускаю? – Charlie74

+0

Ваша ошибка говорит: 'function 'myScripts' not found', возможно, попробуйте создать функцию с именем myScripts() –

+0

Doh ... myScripts это не функция, это имя ... функция, которую я имею, называется add_my_script(). Я обновил эту строку, и ошибка теперь исчезла ... но проклятый код все еще не работает. должен обновить вопрос, который я предполагаю, с новым кодом ... – Charlie74

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