Как предотвратить загрузку библиотеки jQuery в верхней части страницы WordPress

20 мар. 2013 г., 23:02:08
Просмотры: 19.7K
Голосов: 6

Я разрабатываю сайт, который должен быть защищен HTTPS, а WordPress загружает <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> в самом верху страницы, перед тегом <html>, что вызывает ошибку небезопасного соединения. Я не могу найти, откуда происходит эта загрузка, чтобы предотвратить её.

К сожалению, я не могу показать сайт, так как это сайт федерального кредитного союза, и это было бы нарушением нашего контракта, если бы я представил этот сайт публично до его завершения.

Вот скриншот проблемы через инструменты разработчика Chrome (нажмите для увеличения):

Инструменты разработчика Chrome показывают загрузку jQuery через HTTP

5
Комментарии

это ваша тема или плагин, ядро WordPress и стандартные темы так не делают.

Milo Milo
20 мар. 2013 г. 23:08:13

Я отключил все плагины, чтобы проверить, решит ли это проблему, но это не помогло. Сайт построен на кастомном фреймворке, и у меня нет ничего, что могло бы загрузить эту библиотеку. Думаю, это какая-то проблема с унаследованным wp_enqueue_script.

Anthoney Carter Anthoney Carter
20 мар. 2013 г. 23:15:56

не совсем понимаю, что вы имеете в виду под унаследованной проблемой wp_enqueue_script. WordPress загружает свою версию jQuery из папки includes, так что ваша тема где-то что-то делает.

Milo Milo
20 мар. 2013 г. 23:20:11

Согласен с Мило. Если ваши плагины исключены, проблема может быть только в теме. Попробуйте переключиться на стандартную тему (twentysomething). Исчезла ли проблема? Конечно, да.

vancoder vancoder
20 мар. 2013 г. 23:46:50

Вы осознаёте, что URL сайта виден на добавленном вами скриншоте?

RiddleMeThis RiddleMeThis
17 сент. 2019 г. 23:26:02
Все ответы на вопрос 2
2
13

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

wp_deregister_script('jquery'); 
wp_register_script('jquery', '', '', '', true);

Поместите это в ваш файл functions.php.

Моя полная очистка заголовка WordPress:

/* =Очистка заголовка WordPress
------------------------------------------------- */

    // удаление ссылок в заголовке
    add_action('init', 'tjnz_head_cleanup');
    function tjnz_head_cleanup() {
        remove_action( 'wp_head', 'feed_links_extra', 3 );                      // RSS-ленты категорий
        remove_action( 'wp_head', 'feed_links', 2 );                            // RSS-ленты записей и комментариев
        remove_action( 'wp_head', 'rsd_link' );                                 // Ссылка EditURI
        remove_action( 'wp_head', 'wlwmanifest_link' );                         // Windows Live Writer
        remove_action( 'wp_head', 'index_rel_link' );                           // индексная ссылка
        remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );              // предыдущая ссылка
        remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );               // начальная ссылка
        remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );  // Ссылки на соседние записи
        remove_action( 'wp_head', 'wp_generator' );                             // Версия WP
        if (!is_admin()) {
            wp_deregister_script('jquery');                                     // Отмена регистрации jQuery
            wp_register_script('jquery', '', '', '', true);                     // Регистрация как 'пустого', т.к. мы вручную вставляем скрипт в header.php
        }
    }

    // удаление версии WP из RSS
    add_filter('the_generator', 'tjnz_rss_version');
    function tjnz_rss_version() { return ''; }
21 мар. 2013 г. 11:35:13
Комментарии

Спасибо, @Marc! Функция wp_deregister_script сработала идеально. Я не использую стандартные темы WordPress, а пишу свою собственную разметку для head, header, контента, footer и т.д. Поэтому мне было непонятно, почему подгружалась эта библиотека jQuery.

Anthoney Carter Anthoney Carter
21 мар. 2013 г. 17:23:16

@AnthoneyCarter ещё раз: если источник code.jquery.com, это не WordPress виноват. Вы просто отменяете регистрацию jQuery, которая была выполнена где-то ещё (темой или плагином). Кроме того, вы сломаете функциональность, если используете плагины, которым нужен jQuery. Так что делайте это на свой страх и риск.

Milo Milo
21 мар. 2013 г. 20:55:01
0

Вы также можете загрузить библиотеку с jQuery.com и подключить её как обычный скрипт в файле functions.php, завершив вызов wp_enqueue_script параметром true, что выведет скрипт непосредственно перед закрывающим тегом </body>.

wp_enqueue_script('customjquery', get_template_directory_uri(). '/js/jquery.min.js', array(), '2.1.4', true);

WordPress до сих пор использует jQuery версии 1.x.x, насколько я знаю. Я подключаю jQuery отдельно, потому что использую последнюю версию Bootstrap и хочу иметь самую свежую версию jQuery. Просто не забудьте добавить true в вызов функции.

1 сент. 2015 г. 03:48:07