Многие плагины и темы добавляют файлы JavaScript и CSS на сайт. Использование нескольких плагинов в WordPress может перегружать сайт множеством запросов на эти файлы. Приходится сталкиваться с проблемой загрузки скриптов в заголовке страниц или записей, которые в них не нуждаются.
Отключить JavaScript и файлы стилей позволит нам взять под контроль эти файлы и заставить сайт работать быстрее. А также объединять несколько файлов в один файл или загружать файлы только на те страницы, на которых нужно использовать скрипт или стиль.
С помощью нижеприведенного кода вы можете отключить (ненужный) стили, скрипт или JS-файлы плагинов на определенной странице или записи, чтобы уменьшить http запросы. А также увеличить скорость сайта WordPress.
Отключение JavaScript на сайте
Не все плагины используют соответствующие методы для загрузки скриптов и стилей. Некоторые разработчики просто добавляют код прямо в шапку. Обычно это происходит потому, что они не знакомы с двумя важными функциями WordPress: wp_enqueue_script () и wp_enqueue_style () , которые подключают внешние файлы CSS и JavaScript. Если используемый вами плагин или автор темы не использует эти функции, то попросите их сделать это. Это позволяет нам в дальнейшем работать с их кодом, используя методы, предоставляемые WordPress.
Прежде всего вам нужно найти какие скрипты или стили вы хотите отключить. Выполнив следующие шаги:
- Откройте index.php и найдите wp_enqueue_script или имя файла скрипта;
- Откройте файл functions.php вашей темы;
- Скопируйте и вставьте код ниже, отредактировав на свои данные.
В этом примере я покажу как отключить загружаемый Javascript-файл контактной формы, за исключением выбранной страницы. Например страницу контактов.
1 2 3 4 5 6 7 | add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 ); function my_deregister_javascript() { if ( !is_page('Contact') ) { wp_deregister_script( 'contact-form-7' ); } } |
1. Отключение JavaScript на страницах WordpPress
Отредактируйте значения Home и javascript-name-file в соответствии с вашими именами JS файлов.
1 2 3 4 5 6 7 | add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 ); function my_deregister_javascript() { if ( !is_page('Home') ) { wp_deregister_script( 'javascript-name-file' ); } } |
Непосредственная настройка кода должна выполняться опытными пользователями, которые имеют значительный опыт работы с кодом и могут быть уверены, что они знают, как отменить любые внесенные изменения.
2. Отключение JavaScript в записях WordPress
Для публикаций используйте идентификатор записи WordPress. Например ‘1’ и javascript-name-file это имя JS скрипта, который необходимо отключить.
1 2 3 4 5 6 7 | add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 ); function my_deregister_javascript() { if ( !is_single('1') ) { wp_deregister_script( 'javascript-name-file' ); } } |
После сохранения файла скрипт больше не будет загружаться, за исключением не указанных страниц или записей. В этой функции вы можете отменить регистрацию любого количества скриптов.
Отключение стилей в WordPress
В этом примере отключим таблицу стилей плагина WP-PageNavi. Это то, что я почти всегда делаю, потому что я добавляю правила стилей в style.css файл моей темы.
Первое, что вы должны сделать, это открыть wp-pagenavi.php в текстовом редакторе и найти wp_enqueue_style.
1 2 3 4 5 | wp_enqueue_style('wp-pagenavi', get_stylesheet_directory_uri().'/pagenavi-css.css', false, '2.50', 'all'); Или wp_enqueue_style('wp-pagenavi', plugins_url('wp-pagenavi/pagenavi-css.css'), false, '2.50', 'all'); |
Мы ищем название функции. В нашем случае — это wp-pagenavi. Как только узнаем, закрываем файл и добавляем этот код в файл functions.php файл вашей темы, который отключит таблицу стилей для этого плагина.
1 2 3 4 5 | add_action( 'wp_print_styles', 'my_deregister_styles', 100 ); function my_deregister_styles() { wp_deregister_style( 'wp-pagenavi' ); } |
Файл wp-embed отключить js на сайте
Небольшой совет по удалению фрагмента кода, добавленного WordPress 4.4 в заголовок страниц о wp-embed. Это скрипт, добавленный wordpress, который очень легко встраивать видео, изображения, твиты, аудио и другой контент на сайт WordPress. Эта функция была добавлена в WordPress 2.9.
Вот код, который поможет отключить js на сайте со всех страниц:
1 2 3 4 | function my_deregister_scripts(){ wp_deregister_script( 'wp-embed' ); } add_action( 'wp_footer', 'my_deregister_scripts' ); |
Советы по улучшению этой работы
Вы отключили несколько скриптов и стилей, но вам нужно что-то с ними сделать. Вот список советов о том, как использовать методы, описанные в этом руководстве:
- Добавьте стили, которые вы отключили, в конец style.css файла вашей темы и отредактируйте их оттуда, чтобы получить желаемый вид.
- Объедините несколько скриптов в один файл и загрузите его самостоятельно. Я бы сделал это только для вещей, которые используют одну и ту же библиотеку JavaScript. Например, я часто комбинирую скрипты, которые построены на jQuery.
- Используйте условные теги для детального контроля над загрузкой скрипта или стиля.
Если вы отключите что-то, это может привести к некорректной работе плагина или темы. Большинство стилей можно легко добавить в таблицу стилей вашей темы, чтобы вы не загружали тонну таблиц стилей на свой сайт. JavaScript — это совсем другой зверь, и я рекомендую объединять несколько файлов в один, только если вы знаете, что делаете.
Экспериментируйте, а также поделитесь своим опытом с другими в комментариях ниже.