Скорость этой страницы TTFB … LCP …
Uncategorized

Ускорение Contact Form 7

Selim Koç 2 мин чтения

Open Source · Rufo

Contact Form 7.
Только там, где он нужен.

Rufo автоматически убирает неиспользуемые CSS- и JavaScript-файлы Contact Form 7 со всех страниц, где нет формы. Бесплатно на WordPress.org.

Проблема

5 миллионов сайтов.
И каждая страница медленнее.

Знаете ли вы, что плагин Contact Form 7, созданный Такаюки Миёси, используется более чем на 5 миллионах сайтов на WordPress? Уже много лет это самый популярный выбор для контактных форм в WordPress: множество функций и предельная простота. Но со скоростью есть большая проблема. Contact Form 7 подключает свои CSS- и JavaScript-файлы на каждой странице сайта, даже там, где контактной формы нет. Файлы небольшие, но всё равно замедляют сайт. А это серьёзно, особенно сейчас, когда все стремятся ускорить свои сайты.

Что делает Rufo

Файлы, только там, где есть формы.

/contactНа странице есть форма Contact Form 7
Файлы CF7 загружены
/blog, /about, /shop …На странице нет формы
Удалены

Автоматически. Ничего не нужно настраивать.

Установка

Готово за минуту.

  1. Войдите в админ-панель WordPress.
  2. Откройте Плагины в меню слева.
  3. Нажмите Добавить новый плагин.
  4. Найдите «Rufo».
  5. Установите и активируйте. Вот и всё.

Чтобы удалить плагин, деактивируйте и удалите его. Rufo не использует базу данных и другие ресурсы вашего сайта.

Руководство

Предпочитаете код? Вот как это работает.

Два способа запретить Contact Form 7 загружать файлы на страницах без формы.

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

Вариант 1: Собственный PHP-код

Можно написать собственный PHP-код и добавить его в файл functions.php вашей темы. Этот код скажет WordPress не загружать файлы Contact Form 7 на страницах, где нет контактных форм.

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

Сделать это можно двумя способами:

Вариант 1, A. Указать конкретные страницы

Если вы знаете ID страницы с контактной формой, используйте этот код. Он говорит WordPress не загружать файлы Contact Form 7 на странице с указанным ID.

if ( !is_singular() && get_the_ID() != 65 ) {
        add_filter( 'wpcf7_load_js', '__return_false' ); 
        add_filter( 'wpcf7_load_css', '__return_false' );
}

Если контактные формы есть на нескольких страницах, например с ID 65 и 99:

if ( !is_singular() && !in_array(get_the_ID(), [65,99]) ) {
        add_filter( 'wpcf7_load_js', '__return_false' ); 
        add_filter( 'wpcf7_load_css', '__return_false' );
}

Если вы хотите использовать slug страницы вместо ID.

if ( !is_singular() ) { 

    $page_slug = get_post_field( 'post_name', get_queried_object_id() );
    $excluded_slugs = ['example-page-slug-1', 'example-page-slug-2']; 
    
    // Add your excluded slugs here 
    if ( !in_array($page_slug, $excluded_slugs) ) { 
          add_filter( 'wpcf7_load_js', '__return_false' ); 
          add_filter( 'wpcf7_load_css', '__return_false' ); 
    } 
}

Вариант 1, B. Поиск шорткода контактной формы в содержимом страницы:

Этот код проверяет, есть ли в содержимом страницы шорткод Contact Form 7. Если шорткод не найден, CSS- и JavaScript-файлы на этой странице не загружаются.

function globaliser_page_has_contact_form() 
     {

        global $post;

        if ( is_singular() ) 
        {
           $content = $post->post_content;   
           if ( has_shortcode( $content, 'contact-form-7' ) ) 
           {
             return true;
           }
        }
        return false;
     }


     if ( !globaliser_page_has_contact_form() ) 
     {
         add_filter( 'wpcf7_load_js', '__return_false' ); 
         add_filter( 'wpcf7_load_css', '__return_false' );
     }

Вариант 2: Плагин Rufo для WordPress

Не хотите возиться с кодом? Не проблема! Вместо этого можно использовать плагин Rufo для WordPress. Этот удобный инструмент автоматически находит страницы без контактных форм и убирает ненужные CSS- и JavaScript-файлы. Это более простое и удобное решение, чем писать собственный код.

Он делает то же самое, что и второй способ выше: автоматически убирает CSS- и JavaScript-файлы со страниц без контактных форм.

Почему мы сделали для этого плагин, а не ограничились кодом? Кто-то может посоветовать править сам плагин Contact Form 7, но в мире WordPress это плохая идея.

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

И кстати, если вам интересно создавать собственные плагины WordPress на продуманной архитектуре MVC, у нас есть ещё один плагин, ATA, который в этом поможет. Но это уже совсем другая история!

Ваша история успеха может стать следующей.

Есть вопросы? Мы поможем принять верное решение.

Следующая история успеха может стать вашей.

Есть вопросы? Поможем выбрать верное решение.