Москва, Строительный проезд, 7А кор. 4 Работаем: 24/7 +7 495 744 67 74

Оптимизируем Contact Form 7 — удаление скриптов и стилей

WordPress всегда «славился» тем, что подключает множество ненужных файлов от плагинов на всех страницах сайта. По большей части это всё-таки проблема самих разработчиков, но раз уж нам досталось это от программистов, то не грех будет вычистить за ними куски «грязного» кода.

Объясню вкратце, о чём сама заметка: при каждой загрузке плагина WP тянет множество файлов — скрипты JavaScript, таблицы CSS и много другой левой информации, которая не нужна на каждой странице сайта.

Пример: плагин Contact Form 7, который служит для создания формы обратной связи. Самый простой вопрос — сколько у вас страниц с формами обратной связи на сайте? Ну максимум 2-3, я думаю больше вы не используете. А вот обычных блоговых страниц может быть за тысячу.

А теперь представьте, что при каждой загрузке страницы, на которой нет формы обратной связи Contact Form 7, WordPress вынужден подгружать лишние файлы — скрипты и стили оформления для формы. Которых (внимание!) — нет! Проблемы, в общем-то, нет, если вы используете какие-то плагины для кеширования, либо у вас грамотно настроенный веб-сервер. Но не всем везёт, к сожалению.

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

Определяем страницы с формами обратной связи

Первым делом нам нужно найти номера (ID) наших форм.

  • Заходим в меню «Contact Form 7» в Консоли WP и переходим в «Формы».
  • Наша с вами задача найти ID наших форм. Вот они:

Теперь надо выяснить, на каких страницах или записях имеются эти формы.

  • Берём в примере первый ID 1689 из предыдущего скриншота, идём в раздел «Страницы» — «Все страницы», в поле фильтра вводим наш числовой код формы: «1689» и нажимаем кнопку «Поиск страниц»:
  • Если на какой-то странице встречается это слово, то она будет выведена в списке страниц:

Теперь нам останется найти slug этой страница и записать его куда-нибудь.

  • В списке найденных страниц наводим на название страницы и выбираем в появившихся ссылках пункт «Свойства». Отобразится вот такая настройка:
  • Копируем то, что указано в поле «Ярлык» и записываем в текстовый редактор.

Вот по такому способу вам нужно найти все страницы или записи, на которых используются формы обратной связи. Записи можно найти аналогичным способом, только в разделе «Записи» — «Все записи». После этой работы у вас будет список ярлыков.

Отключаем форму обратной связи

Следующим этапом будет отмена подгрузки скриптов и стилей форм обратной связи на тех страницах, которые эти самые формы не используют. Вперёд!

Это раздел подразумевает что вы умеете пользоваться FTP и знаете как подключиться к вашему хостингу. Если нет — воспользуйтесь инструкцией по работе с FileZilla.
  • Подключаемся к FTP вашего хостинга или сервера.
  • Заходим по адресу wp-content/themes/название_вашей_темы/.
  • Открываем на редактирование файл functions.php.
  • И в самый его конец добавляем следующий код:
    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' );
        }  
    }
  • Сохраняем файл обратно на FTP и радуемся!

Теперь немного пояснений по коду, чтобы вы понимали о чём идёт речь.

Видите строчки начинающиеся на $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 и пользуемся.

Заключение

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

Информация для тех, кто не использует slug в структуре URL

Вам вместо названий страниц необходимо будет вписать ID этих страниц или записей в тот же массив $allowed_cf7_pages_or_posts[] из примера выше. Ничего ровным счётом не меняется.

Если есть вопросы — задавайте их в комментариях к этой записи.


адрес

г. Москва, Строительный пр., 7Ак4

телефон

+7 495 744 67 74Круглосуточно
Яндекс.Метрика

Если у Вас есть вопросы, жалобы или предложения по работе нашей компании, напишите нам Нам важно любое мнение. Спасибо.