Ошибка wordpress http 500 после добавления пользовательского jquery

Я уже некоторое время пробовал разные методы добавления jquery на свой сайт и обнаружил, что лучше всего поставить его в очередь в functions.php. В частности, я пытаюсь добавить «липкую» панель навигации, которая привязывается к верхней части страницы, когда пользователь прокручивает страницу вниз. Однако, когда я делаю это, мой сайт получает ошибку 500, и я должен удалить ее, чтобы снова запустить сайт.

Очевидно, что код functions.php для постановки скрипта в очередь или сам скрипт вызывает проблему, однако я не смог определить, что именно и, конечно, почему. (может ли быть проблема с настройкой моего сервера? Нехватка ресурсов/разрешений и т. д.?)

Вот мой отрывок из Functions.php:

    function verdigris_script() {
// register your script location, dependencies and version
   wp_register_script('custom_js',
   get_template_directory_uri() . '/js/scripts.js',
   array('jquery'),
   '1.0', true );

function scripts_enqueue() {
    //css
    wp_enqueue_style('bootstrap', get_template_directory_uri() . '/css/bootstrap.min.css', array(), 'all');
    wp_enqueue_style('customstyle', get_template_directory_uri() . '/css/verdigris-style.css', array(), 'all');
    //js
    wp_enqueue_script('jquery');
    wp_enqueue_script('bootstrapjs', get_template_directory_uri() . '/js/bootstrap.min.js', array(), true);
    wp_enqueue_script('custom_js');

}
add_action( 'wp_enqueue_scripts', 'verdigris_script');

и это мой сценарий:

    jquery(function() {
  var $container = $('.container');
  var $b = $('body');
  $.waypoints.settings.scrollThrottle = 0;
  $container.waypoint({
    handler: function(e, d) {
      $b.toggleClass('sticky', d === 'down');
      e.preventDefault();
    }
  });
});

спрашиваю, может ли кто-нибудь определить проблему.

Спасибо заранее.


person MoxieProxy    schedule 06.04.2017    source источник
comment
Всегда проверяйте журналы ошибок сервера, чтобы выяснить причину сообщения об ошибке 500. Сама ошибка слишком широка и охватывает множество вопросов.   -  person aynber    schedule 06.04.2017
comment
Обычно вы можете найти сообщение об ошибке, если вы просматриваете журналы ошибок или включаете отладку в настройках WordPress, вот вопрос с хорошим ответом в отношении отладки stackoverflow.com/questions/1080679/php-and-wordpress-debugging   -  person Markus Tenghamn    schedule 06.04.2017
comment
В моих файлах журнала я получаю: добавлено в wp-content/themes/Verdigris/functions.php в строке 20 при чтении заголовка ответа из восходящего потока, клиент: 86.170.108.202, сервер:, запрос: POST /wp-admin/admin-ajax .php HTTP/2.0, вверх по течению: fastcgi://unix:$ 2017/04/06 10:56:24 [ошибка] 17097#17097: *3412 FastCGI отправлено в stderr: PHP-сообщение: PHP Неустранимая ошибка: Uncaught Error: Call к неопределенной функции wp_register_scripts() в /wp-content/themes/Verdigris/functions.php:20 Трассировка стека:   -  person MoxieProxy    schedule 06.04.2017
comment
вам не нужно этого делать wp_enqueue_script('jquery'); WordPress поставляется со своей собственной версией jquery.   -  person victor    schedule 06.04.2017
comment
Спасибо, я удалю это. У вас есть какое-либо представление о сообщении об ошибке, которое я получаю?   -  person MoxieProxy    schedule 06.04.2017


Ответы (1)


У вас есть ошибка в вашем PHP-коде.

Вы непреднамеренно объявляете функцию внутри другой функции и никогда не закрываете ее.

Удалять:

function scripts_enqueue() {
person Nathan Dawson    schedule 06.04.2017
comment
Спасибо. ^ это сработало. Я знал, что это будет что-то тривиальное, что я пропустил. - person MoxieProxy; 06.04.2017
comment
Означает ли это, что мне не нужно добавлять новую функцию при постановке в очередь после регистрации? - person MoxieProxy; 06.04.2017
comment
при написании PHP-кода рекомендуется проверить допустимый синтаксис PHP, прежде чем пытаться его запустить. Любая хорошая IDE или редактор сообщит вам об этом автоматически и выделит ошибки, поэтому я всегда рекомендую использовать достойный редактор, но вы также можете запустить php -l <filename>, чтобы заставить PHP проверять наличие синтаксических ошибок без запуска кода. - person Simba; 06.04.2017
comment
@MoxieProxy Вы можете зарегистрировать и поставить скрипт в очередь в одной и той же функции. Одинаково хорошо зарегистрироваться в одной функции и поставить в очередь в другой. Ваша ошибка была связана с ошибкой в ​​PHP. Если вы открываете функцию, вам нужно закрыть ее. - person Nathan Dawson; 06.04.2017