Как предотвратить загрузку библиотеки jQuery в верхней части страницы WordPress
Я разрабатываю сайт, который должен быть защищен HTTPS, а WordPress загружает <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
в самом верху страницы, перед тегом <html>
, что вызывает ошибку небезопасного соединения. Я не могу найти, откуда происходит эта загрузка, чтобы предотвратить её.
К сожалению, я не могу показать сайт, так как это сайт федерального кредитного союза, и это было бы нарушением нашего контракта, если бы я представил этот сайт публично до его завершения.
Вот скриншот проблемы через инструменты разработчика Chrome (нажмите для увеличения):
Когда я создаю темы, мне также нравится максимально очищать заголовок 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 ''; }

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

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

Вы также можете загрузить библиотеку с 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 в вызов функции.
