Вопрос:

WordPress header.php хранит старые удаленные теги <script> с неверным кодом Jquery. (кэширование не включено)

php jquery wordpress

447 просмотра

2 ответа

3 Репутация автора

У меня есть следующая проблема на этом сайте: http://client1.studdo-media.nl/

когда я открываю инструменты разработчика для Chrome, я вижу следующие ошибки JS:

client1.studdo-media.nl/:8 Uncaught ReferenceError: $ is not defined
client1.studdo-media.nl/:23 Uncaught ReferenceError: $ is not defined
client1.studdo-media.nl/:47 Uncaught ReferenceError: $ is not defined

Я знаю, что WordPress нужен Javuer noConflict Wrapper для работы с $.

Я удалил неправильный код в файле header.php и заменил его правильным, упакованным JQuery, и поместил его в тело, чтобы убедиться, что JQuery загружен.

Это мой файл header.php прямо сейчас

<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">


<?php wp_head(); ?> 
</head>

    <body <?php body_class('blog-page'); ?>>
        <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
<link rel="stylesheet" type="text/css" href="/wp-content/themes/mercurius/assets/css/jquery.fullPage.css" />
<script type="text/javascript" src="/wp-content/themes/mercurius/assets/js/jquery.fullPage.js"></script>  

<script>
jQuery( document ).ready( function( $ ) {
        $('a[href*=#]:not([href=#])').click(function() {
            var target = $(this.hash);
            target = target.length ? target : $('[name=' + this.hash.substr(1) +']');
            if (target.length) {
                $('html,body').animate({
                  scrollTop: target.offset().top
                }, 1500);
                return false;
            }
        });
        });
</script>
<script>
jQuery( document ).ready( function( $ ) {

    $('#someID').click(function(){
        $('html, body').animate({scrollTop:$(document).height()}, 'slow');
        return false;
    });

});
</script>
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-81168606-1', 'auto');
  ga('send', 'pageview');
</script>

<!-- parallax header -->
<script>
  jQuery(window).scroll(function() {
    var scroll = jQuery(window).scrollTop();            
    jQuery(".carousel .fill").css("transform","translateY(" +  (scroll)/2  + "px)");
  });
</script>

    <!-- Header Section -->
    <header id="header"> 

примечание: все, что находится под открывающим тегом заголовка, не относится к этому вопросу и поэтому не вставлено сюда.

Правильный код загружается WordPress сразу после открытого тега.

Кажется, я не могу понять, почему старый (неправильный) код все еще загружается на мой сайт. Примечание: неправильный код, кажется, добавляется до

<!DOCTYPE html>

увидеть это изображение: WordPress скрипт тег перед

У меня не включено кэширование.

Изменить: теги сценариев были загружены другим файлом в моей папке тем, так что это не имеет ничего общего с header.php .. (ответ от lassemt)

Автор: Edwin van Halem Источник Размещён: 22.08.2016 09:00

Ответы (2)


0 плюса

119 Репутация автора

Решение

У меня пока нет 50 репутации, поэтому я не могу это прокомментировать ... Но я постараюсь объяснить вам, что не так со сценариями.

Во-первых, WordPress не нуждается в оболочке noConflict, если только это не jquery в бэкэнде (в панели администратора).

Проблема в основном "каскадная". Проверяя ваш код, я заметил, что у вас есть одинаковые скрипты, загруженные сразу после головы внутри головы (они дублируются). Причина, по которой вы получаете эти сообщения об ошибках, заключается в том, что веб-сайт пытается запустить функции, требующие jQuery, до загрузки jQuery в ваш документ.

Если вы проверите свой сайт и проверите внутри тега сразу после загрузки Google Analytics, вы увидите, что у вас загружены 3 различных встроенных скрипта. Первые e - это скрипты, использующие jquery и дублирующие.

Может показаться, что эти сценарии поставляются с wp_head () при просмотре кода, которым вы поделились с нами, так что, возможно, они все еще находятся в functions.php?

Редактировать с решением после проверки темы

В вашей теме, если вы посмотрите на файл inc / includes / head.php, вы увидите тот файл, в котором находится нежелательный код. Этот файл включен в файл inc / init.php (он использует функцию, которая включает все файлы в папке «include»). Решение состоит в том, чтобы отредактировать файл head.php и удалить из него сценарии или просто удалить файл.

Автор: lassemt Размещён: 22.08.2016 09:38

0 плюса

169 Репутация автора

Вполне вероятно, что другой плагин, скрипт или функция присоединены к хуку «нажми слово» ( https://codex.wordpress.org/Plugin_API/Action_Reference ), который выводит данные до загрузки файла header.php. Попробуйте отключить все плагины и включите их по одному, пока не найдете ошибку. Это также может произойти, если какой-либо код был помещен в любой из основных файлов WordPress, например, в файл functions.php или тому подобное, а не в заголовок.

Автор: Joshua Klein Размещён: 22.08.2016 09:41
Вопросы из категории :
32x32