Что такое Advanced Custom Fields и зачем он нужен?
Advanced Custom Fields (ACF) — плагин для WordPress, который дает вам полный контроль над метаданными постов, страниц, пользовательских типов записей (Custom Post Types) и таксономий. Вместо того чтобы вбивать данные в кривой стандартный блок «Произвольные поля», вы получаете удобный интерфейс с десятками типов полей: текст, число, изображение, выбор, повторитель, гибкий макет и еще 25+ вариантов. ACF активен на более чем 1 миллионе сайтов по данным Kinsta, а рейтинг на WordPress.org — 4.9 из 5 на основе 1000+ отзывов. Плагин вышел еще в 2011 году — за 13 лет он стал стандартом индустрии.
Проблема стандартных метаполей WordPress
Из коробки WordPress предлагает только один тип поля — «Произвольное поле» (Custom Field). Это строка “Ключ — Значение”. Без редактора, без валидации, без подсказок. Добавить фотографию? Вводить URL вручную. Сделать выбор из списка? Писать slug-значения. Создать повторяющийся блок? Только через хитрые комбинации postmeta. А если клиент случайно сотрет значение — данные потеряны. ACF решает всё это на уровне UX: датапикеры, медиатеки, WYSIWYG, условная логика. Не надо учить заказчика работе с метабоксами — просто показываете ему красивые поля.
Преимущества ACF перед аналогами (Pods, Meta Box)
Конкуренты — Pods и Meta Box. Pods мощный, но тяжелый: он тащит свой фреймворк для фронтенда и базу данных. Meta Box легче, но его PRO-модули докупаются отдельно, что запутывает ценообразование. ACF выигрывает за счет простоты: вы создаете группу полей (Field Group), указываете правила показа (Location Rules) и получаете аккуратный метабокс. Код вывода минимален: get_field(), the_field(), have_rows(). Плагин поддерживает ACF Blocks, Options Pages, Local JSON для переноса конфигураций между средами. Сообщество огромно — тысячи готовых рецептов и туториалов.
Установка и первые шаги
Установка плагина через админку или вручную
Самый простой способ: в админке WordPress перейдите в «Плагины» → «Добавить новый» и найдите “Advanced Custom Fields”. Установите и активируйте. Если нужна Pro-версия — скачайте архив с сайта advancedcustomfields.com, загрузите через «Загрузить плагин» и активируйте. Pro не заменяет бесплатную версию, а расширяет её — все данные останутся на месте. После активации в меню появится пункт “ACF”.
Создание первой группы полей и выбор типов
Жмите “ACF” → “Groups” → “Add new”. Дайте группе название, например «Карточка товара». Нажмите “Add Field”. Выберите тип поля: Text, Number, Image, WYSIWYG, True/False, Select, Checkbox, Radio, Page Link, Post Object, Relationship и многие другие. У каждого типа есть свои настройки — обязательность, значения по умолчанию, условная логика (Conditional Logic). После добавления полей перейдите к настройкам “Location” — укажите, где показывать эту группу: например, на записях типа “product” или на страницах с определённым шаблоном. Сохраните группу, и поля появятся в редакторе.

Типы полей: от простых до профессиональных
ACF содержит более 30 встроенных типов полей, разделенных на базовые и PRO (доступны только в платной версии).
Базовые типы (текст, число, изображение, файл, выбор)
Стандартные типы покрывают 80% задач: Text для названия, Text Area для описания, Number для цены, Image для фото, File для документа, WYSIWYG для форматированного контента, True/False для чекбокса включения, Select выпадающий список, Checkbox множественный выбор, Radio один вариант из нескольких. А еще есть Link, Page Link, Post Object (выбор записи из WP), Google Map (с API-ключом), Date Picker, Time Picker, Color Picker, Range (слайдер) и Password — все бесплатно.
Расширенные типы PRO (Repeater, Flexible Content, Gallery, Clone)
Pro добавляет четыре killer-фичи. Repeater — повторяющийся блок полей (например, список сотрудников: имя + фото + должность). Flexible Content — гибкий макет, где редактор сам выбирает, какие блоки добавить (как в Gutenberg, но внутри одного поста). Gallery — галерея изображений с перетаскиванием и подписями. Clone — клонирование полей из других групп, чтобы не дублировать настройки. Именно ради этих типов большинство разработчиков покупают Pro.
Правила отображения (Location Rules)
Location Rules — сердце ACF. Вы задаете условия, при которых группа полей отображается в редакторе. Например: «Показывать на страницах с шаблоном Шаблон-Контакты» или «Только для записей типа product, если у товара категория = “Акции”». Условия можно комбинировать по логике “И” и “ИЛИ”, добавлять исключения: «НЕ показывать для автора с ролью subscriber». Это позволяет создавать сложные схемы метабоксов без единой строки кода.
Location Rules позволяют показать поле только нужным пользователям и на нужных страницах — чистый UX без лишнего кода.
ACF Blocks – пользовательские блоки Gutenberg
С версии 5.8 ACF позволяет создавать свои блоки Gutenberg — ACF Blocks. Вы регистрируете блок через PHP, создаёте шаблон (template) и используете поля ACF как атрибуты блока. Редактор видит полноценный блок с превью, а верстку контролируете вы. Плюс: блоки полностью совместимы с полями Repeater и Flexible Content — можно сделать блок «Карточка товара» с повторяющимися характеристиками. Минус: ACF Blocks требуют Pro-версии. Зато экономите время: не нужно писать React-компоненты для Gutenberg.
Страницы настроек (Options Pages) для глобальных данных
Options Pages — ещё одна фича Pro. Вы создаете страницу в админке (например, «Настройки сайта») и привязываете к ней группы полей. Телефон, адрес, соцсети, счетчики — всё хранится в одной опции, а не в записях. Доступ к значениям через get_field('field_name', 'option'). Можно создать несколько страниц опций с вложенными табами. Это стандарт для любых многостраничников и интернет-магазинов.
Как вывести поля на сайте с помощью PHP
get_field(), the_field(), have_rows()
Три основные функции. get_field('field_name') возвращает значение — используйте в условиях и для сложной обработки. the_field('field_name') сразу выводит — для простых строк. have_rows('repeater_name') запускает цикл по повторяющемуся полю; внутри используйте get_sub_field(). Пример для Repeater:
<?php if( have_rows('team_members') ): ?>
<ul>
<?php while( have_rows('team_members') ) : the_row(); ?>
<li>
<img src="<?php echo get_sub_field('photo'); ?>" alt="">
<h3><?php the_sub_field('name'); ?></h3>
</li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
Для Flexible Content: have_rows('flexible_content') внутри проверяете get_row_layout() и выводите соответствующий шаблон.
Использование в стандартных шаблонах и в блоках
В обычном PHP-шаблоне (single.php, page.php) вызывайте функции прямо в цикле. В ACF Blocks есть файл block.php, где уже доступны $fields и хелперы. Для Options Page передавайте второй параметр: get_field('phone', 'option'). Не забывайте экранировать вывод: esc_html() для текста, esc_url() для ссылок, wp_kses_post() для WYSIWYG.

ACF — это не просто плагин для полей. Это фреймворк моделирования контента, который устанавливают на 2 миллионах сайтов.
Базовая версия vs. Pro: что выбрать?
Сравнение функций и цены
| Функция | Бесплатная версия | Pro ($49/год за 1 сайт) |
|---|---|---|
| Базовые типы полей | ✓ | ✓ |
| Repeater, Flexible Content, Gallery, Clone | ✗ | ✓ |
| Options Pages | ✗ | ✓ |
| ACF Blocks | ✗ | ✓ |
| Регистрация CPT и таксономий | ✓ (с версии 6.1) | ✓ |
| Local JSON | ✓ | ✓ |
| Количество сайтов | не ограничено | от 1 до безлимита ($249/год) |
Как обновиться без потери данных
Просто установите Pro поверх бесплатной версии — все группы полей и введённые данные сохранятся. Pro добавляет новые типы полей, которые сразу становятся доступны. Удалять бесплатный плагин не нужно. При деактивации Pro данные не пропадают, но поля типа Repeater перестанут корректно выводиться. Поэтому миграцию делайте на staging, проверьте вывод каждого поля.
Производительность и безопасность ACF
Многие боятся, что ACF замедлит сайт. На самом деле плагин сохраняет значения в стандартную таблицу postmeta — он не создаёт новых таблиц, не грузит скрипты на фронтенде (кроме случаев с Google Map и Color Picker). Основное влияние — количество запросов к БД при выводе. Используйте get_field с кэшированием: WordPress кэширует postmeta в объектном кэше (Memory cache). Если сайт на высоких нагрузках, храните конфигурации групп полей в файлах через Local JSON — ACF автоматически запишет настройки в папку theme/acf-json и будет читать их оттуда, минуя БД.
Безопасность: экранируйте вывод! the_field() сам не экранирует. Используйте esc_html( get_field() ) для текста, esc_url() для ссылок, wp_kses_post() для области с HTML-форматированием. Для полей WYSIWYG ACF возвращает уже отфильтрованный контент, но дополнительная проверка не помешает. Валидация ввода — настраивается в ACF через фильтры (acf/validate_value). Не используйте nulled-версии — они содержат бэкдоры и не получают обновлений.
Миграция полей между окружениями
Local JSON — лучший способ переносить группы полей с dev на staging и на production. В файле wp-config.php включите константу define('ACF_LITE', true); для бесплатной версии (подавляет интерфейс). Но для Local JSON просто убедитесь, что в теме есть папка acf-json. ACF будет сохранять туда файл .json при каждом сохранении группы. На другом окружении синхронизируйте папку — и поля появятся. Если используете Git, добавьте acf-json в репозиторий. Ручной экспорт/импорт тоже работает: в админке ACF → Tools → Export.
Интеграция с WooCommerce и headless WordPress
WooCommerce использует свои метабоксы, но ACF легко добавляет дополнительные поля к товарам. Например, поле «Технические характеристики» (Repeater), «Видеообзор» (Oembed), «Сертификаты» (Gallery). Location Rules: показывать на записях типа product. Вывод в шаблоне single-product.php через get_field(). Совместимость с WooCommerce проверена годами — никаких конфликтов.
Headless WordPress: ACF корректно работает с REST API. Поля возвращаются в ответе объекта (post) в формате acf: { ... }. Для GraphQL нужен плагин WPGraphQL для ACF — он автоматически добавляет поля в схему. Так вы можете управлять контентом через ACF в админке, а фронтенд (Next.js, Nuxt, Gatsby) получает все данные по API.
Практический пример: профиль сотрудника
Допустим, у вас Custom Post Type «Сотрудники». Создайте группу полей: «Фото» (Image, return: ID), «Должность» (Text), «Биография» (WYSIWYG), «Контакты» (Repeater с полями «Тип» (Select: email, phone, telegram) и «Значение» (Text)). Location: Post Type = employee. В шаблоне archive-employee.php выводите карточки:
<?php $photo = get_field('photo'); ?>
<img src="<?php echo wp_get_attachment_image_url( $photo, 'medium' ); ?>" alt="">
<h2><?php the_title(); ?></h2>
<p><?php the_field('position'); ?></p>
<?php if( have_rows('contacts') ): ?>
<ul>
<?php while( have_rows('contacts') ) : the_row(); ?>
<li><?php the_sub_field('type'); ?>: <?php the_sub_field('value'); ?></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
Готово. Чисто, быстро, без костылей. ACF — must-have инструмент для любого WordPress-разработчика.
Часто задаваемые вопросы
Прямого замедления нет. ACF не добавляет скриптов на фронтенде (кроме случаев с Google Map и Color Picker). Основное влияние — количество запросов к БД при выводе. Используйте кэширование postmeta (WordPress по умолчанию кэширует), а для групп полей применяйте Local JSON. На типичных новостных сайтах и интернет-магазинах ACF не создает проблем.
Да, через экспорт/импорт (ACF → Tools → Export) или через Local JSON. Лучше использовать Local JSON и версионирование в Git — это автоматизирует перенос и синхронизацию.
Основные — Pods и Meta Box. Pods мощнее, но сложнее. Meta Box легче, но PRO-модули докупаются по отдельности. ACF остается лучшим по соотношению функциональность/простота.
Для простых проектов (несколько текстовых полей) хватит бесплатной версии. Если нужны повторяющиеся блоки, гибкие макеты, опции страницы или кастомные блоки Gutenberg — Pro обязателен. Цена $49/год за один сайт — стандартная инвестиция для агентств.
Можно привязывать группы полей к посту или странице — они появятся под редактором. А с Pro можно создавать ACF Blocks — полноценные блоки Gutenberg с вашими полями. Для большинства проектов этого достаточно.
Нет. Nulled-версии содержат вредоносный код, не получают обновлений безопасности и могут потерять данные. Используйте только официальные версии с advancedcustomfields.com.
Закажите в нашей студии полнофункциональный сайт с использованием ACF, удобной настройкой и контролем всего контента! Мы создаем не просто красивую картинку, а гибкий инструмент для вашего бизнеса. Никакой жесткой привязки к программистам — вы сможете легко менять текст, баннеры, блоки и структуру страниц в пару кликов.
