Как создать автозаполняемое поле в формах WordPress с примерами кода

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

Что такое автозаполняемое поле и зачем оно нужно в WordPress

Автозаполняемое поле — это элемент формы, который предлагает пользователю варианты ввода на основе уже введенных данных или заранее заданного списка. Это особенно полезно для поиска, выбора городов, категорий, тегов и других элементов, где множество вариантов.

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

Реализация автозаполнения может быть выполнена как с помощью готовых плагинов, так и самостоятельно, используя AJAX-запросы и JavaScript.

Использование плагинов для автозаполнения в WordPress

Для быстрой реализации автозаполняемых полей можно использовать специальные плагины. Рассмотрим несколько полезных вариантов.

1. WPAutocomplete

Простой плагин, который добавляет автозаполнение к текстовым полям на сайте. Вы можете настроить источники данных — посты, термины, произвольные поля.

Плюсы: легко настраивается, поддерживает AJAX.

Минусы: ограниченная кастомизация, подходит для простых задач.

2. Contact Form 7 Autocomplete

Расширение для популярного Contact Form 7, добавляющее возможность автозаполнения в поля форм. Автоматически подгружает варианты из базы или сторонних API.

3. Select2 или Chosen с интеграцией в формы

Хотя это не плагины WordPress, а JavaScript-библиотеки, их можно легко интегрировать в формы WordPress для удобного поиска и выбора из большого списка.

Для интеграции достаточно подключить скрипты и стили и инициализировать поля с помощью JS.

Как создать собственное автозаполняемое поле в WordPress: пошаговое руководство

Если вы хотите гибко управлять автозаполнением и не использовать готовые плагины, можно написать собственное решение на PHP и JavaScript с использованием AJAX-запросов WordPress.

Шаг 1. Добавление поля в форму

Добавим текстовое поле в нужное место темы или плагина, например в файле шаблона:

<input type="text" id="wpassist_autocomplete" name="wpassist_autocomplete" autocomplete="off" placeholder="Начните вводить..." />
<div id="wpassist_autocomplete_results" style="border:1px solid #ccc; display:none; max-height:150px; overflow-y:auto; position:absolute; background:#fff; z-index:999;"></div>

Шаг 2. Подключение JavaScript для обработки ввода

Добавим скрипт, который будет отправлять AJAX-запросы при вводе текста и отображать результаты:

jQuery(document).ready(function($) {
  $('#wpassist_autocomplete').on('input', function() {
    var query = $(this).val();
    if(query.length < 2) {
      $('#wpassist_autocomplete_results').hide();
      return;
    }
    $.ajax({
      url: wpassist_ajax.ajax_url,
      method: 'POST',
      data: {
        action: 'wpassist_autocomplete_search',
        nonce: wpassist_ajax.nonce,
        q: query
      },
      success: function(response) {
        if(response.success) {
          var results = response.data;
          var html = '';
          if(results.length) {
            results.forEach(function(item) {
              html += '<div class="wpassist-autocomplete-item" style="padding:5px; cursor:pointer;">' + item + '</div>';
            });
            $('#wpassist_autocomplete_results').html(html).show();
          } else {
            $('#wpassist_autocomplete_results').hide();
          }
        }
      }
    });
  });

  $(document).on('click', '.wpassist-autocomplete-item', function() {
    $('#wpassist_autocomplete').val($(this).text());
    $('#wpassist_autocomplete_results').hide();
  });

  $(document).click(function(e) {
    if(!$(e.target).closest('#wpassist_autocomplete_results, #wpassist_autocomplete').length) {
      $('#wpassist_autocomplete_results').hide();
    }
  });
});

Шаг 3. Обработка AJAX-запроса в functions.php

Теперь добавим обработчик AJAX-запроса, который будет искать подходящие варианты, например, среди заголовков постов:

add_action('wp_ajax_wpassist_autocomplete_search', 'wpassist_autocomplete_search');
add_action('wp_ajax_nopriv_wpassist_autocomplete_search', 'wpassist_autocomplete_search');

function wpassist_autocomplete_search() {
  check_ajax_referer('wpassist_nonce', 'nonce');
  $query = isset($_POST['q']) ? sanitize_text_field($_POST['q']) : '';
  if(empty($query)) {
    wp_send_json_success([]);
  }
  $args = [
    's' => $query,
    'posts_per_page' => 10,
    'post_status' => 'publish'
  ];
  $search_query = new WP_Query($args);
  $results = [];
  if($search_query->have_posts()) {
    while($search_query->have_posts()) {
      $search_query->the_post();
      $results[] = get_the_title();
    }
  }
  wp_reset_postdata();
  wp_send_json_success($results);
}

Шаг 4. Локализация скрипта и передача AJAX URL

Чтобы скрипт знал URL для AJAX и nonce, нужно добавить в functions.php:

function wpassist_enqueue_scripts() {
  wp_enqueue_script('wpassist-autocomplete', get_template_directory_uri() . '/js/wpassist-autocomplete.js', ['jquery'], null, true);
  wp_localize_script('wpassist-autocomplete', 'wpassist_ajax', [
    'ajax_url' => admin_url('admin-ajax.php'),
    'nonce' => wp_create_nonce('wpassist_nonce'),
  ]);
}
add_action('wp_enqueue_scripts', 'wpassist_enqueue_scripts');

Дополнительные советы и улучшения для автозаполнения в WordPress

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

Кеширование результатов

Если данные не меняются часто, стоит кешировать результаты поиска, например, используя Transients API. Это снизит нагрузку на сервер и ускорит ответ.

Использование сторонних API

Для географических данных или популярных списков можно использовать внешние сервисы, например, Google Places API для автозаполнения адресов.

Интеграция с плагинами форм

Если вы используете плагин Contact Form 7, Gravity Forms или WPForms, можно расширить их функционал, добавив кастомный JavaScript с автозаполнением по AJAX. Для Gravity Forms есть специальные хуки для добавления кастомных полей.

Пример: интеграция автозаполнения с плагином Contact Form 7

Добавим автозаполнение в обычное текстовое поле Contact Form 7. Для этого в functions.php подключим AJAX-обработчик, а в форму добавим поле с нужным id:

[text* your-autocomplete id:wpassist_cf7_autocomplete]

Далее подключим JavaScript аналогично предыдущему примеру, изменив селектор на #wpassist_cf7_autocomplete. AJAX-обработчик в PHP будет таким же, только можно добавить фильтрацию по нужным типам постов или метаданным.

Заключение

Создание автозаполняемых полей в WordPress — задача вполне выполнимая как с помощью готовых плагинов, так и собственными силами. Использование AJAX позволяет динамически подгружать данные, улучшая UX и снижая нагрузку. В статье представлен подробный пример реализации с кодом, который можно адаптировать под свои задачи.

Для удобства и расширенных возможностей рекомендуем изучить плагины WPRemark (для модерации и управления формами) и тему Root с удобной интеграцией форм.

Как удалить кэш в WordPress правильно и быстро
02.12.2025
Как использовать WordPress hooks для автоматизации задач
12.11.2025
Автоматическое удаление неактивных заказов в WooCommerce по времени
30.04.2026
Как использовать WPRemark для автоматического модерирования комментариев в WordPress
17.12.2025
Как использовать REST API в WordPress для создания собственных эндпоинтов
08.11.2025