WordPress всегда «славился» тем, что подключает множество ненужных файлов от плагинов на всех страницах сайта. По большей части это всё-таки проблема самих разработчиков, но раз уж нам досталось это от программистов, то не грех будет вычистить за ними куски «грязного» кода.
Объясню вкратце, о чём сама заметка: при каждой загрузке плагина WP тянет множество файлов — скрипты JavaScript, таблицы CSS и много другой левой информации, которая не нужна на каждой странице сайта.
Пример: плагин Contact Form 7, который служит для создания формы обратной связи. Самый простой вопрос — сколько у вас страниц с формами обратной связи на сайте? Ну максимум 2-3, я думаю больше вы не используете. А вот обычных блоговых страниц может быть за тысячу.
А теперь представьте, что при каждой загрузке страницы, на которой нет формы обратной связи Contact Form 7, WordPress вынужден подгружать лишние файлы — скрипты и стили оформления для формы. Которых (внимание!) — нет! Проблемы, в общем-то, нет, если вы используете какие-то плагины для кеширования, либо у вас грамотно настроенный веб-сервер. Но не всем везёт, к сожалению.
Так вот, в этой небольшой заметке хочу поделиться советом, как на всех страницах, на которых нет форм обратной связи, попросту не загружать лишние файлы.
Первым делом нам нужно найти номера (ID) наших форм.
Теперь надо выяснить, на каких страницах или записях имеются эти формы.
Теперь нам останется найти slug этой страница и записать его куда-нибудь.
Вот по такому способу вам нужно найти все страницы или записи, на которых используются формы обратной связи. Записи можно найти аналогичным способом, только в разделе «Записи» — «Все записи». После этой работы у вас будет список ярлыков.
Следующим этапом будет отмена подгрузки скриптов и стилей форм обратной связи на тех страницах, которые эти самые формы не используют. Вперёд!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
// Отключаем лишние стили из Contact Form 7 на страницах без форм $allowed_cf7_pages_or_posts = array (); $allowed_cf7_pages_or_posts [] = 'zadat-vopros' ; $allowed_cf7_pages_or_posts [] = 'besplatnyi-audit-sayta-na-wordpress' ; $allowed_cf7_pages_or_posts [] = 'zayavka-na-obuchenie-wordpress' ; add_action( 'wp_print_styles' , 'cf7_deregister_styles' , 100 ); function cf7_deregister_styles() { global $allowed_cf7_pages_or_posts ; if ( ! is_page( $allowed_cf7_pages_or_posts ) && ! is_single( $allowed_cf7_pages_or_posts ) ) { wp_deregister_style( 'contact-form-7' ); } } add_action( 'wp_print_scripts' , 'cf7_deregister_scripts' , 100 ); function cf7_deregister_scripts() { global $allowed_cf7_pages_or_posts ; if ( ! is_page( $allowed_cf7_pages_or_posts ) && ! is_single( $allowed_cf7_pages_or_posts ) ) { wp_deregister_script( 'contact-form-7' ); } } |
Теперь немного пояснений по коду, чтобы вы понимали о чём идёт речь.
Видите строчки начинающиеся на $allowed_cf7_pages_or_posts[]? Вот в этих строках как раз и указываются те ярлыки страниц и записей, на которых наша форма будет отображаться. Во всех остальных же скрипты и оформление Contact Form 7 будут отключены.
Допустим, что ярлыки ваших страниц и записей следующие: contacts, my-story, obo-mne.
Вам необходимо будет после вот этой строки в коде выше:
1
|
$allowed_cf7_pages_or_posts = array (); |
Вставить следующие строки:
1
2
3
|
$allowed_cf7_pages_or_posts [] = 'contacts' ; $allowed_cf7_pages_or_posts [] = 'my-story' ; $allowed_cf7_pages_or_posts [] = 'obo-mne' ; |
Остальной код изменять не нужно! Загружаем на FTP и пользуемся.
Вот таким нехитрым способом можно немного оптимизировать работу вашего сайта и не загружать неиспользуемые скрипты или оформление для лишних элементов. Уверен, что для других плагинов всё делается абсолютно аналогичным образом. Возможно со временем я к этому вернусь 🙂
Вам вместо названий страниц необходимо будет вписать ID этих страниц или записей в тот же массив $allowed_cf7_pages_or_posts[] из примера выше. Ничего ровным счётом не меняется.
Если есть вопросы — задавайте их в комментариях к этой записи.
Если у Вас есть вопросы, жалобы или предложения по работе нашей компании, напишите нам Нам важно любое мнение. Спасибо.