acf что это такое
Полное руководство по плагину Advanced Custom Fields
Плагин Advanced Custom Fields облегчает работу с произвольными полями WordPress. Этому плагину и посвящена данная статья.
Что такое произвольные поля в WordPress?
Произвольные поля WordPress позволяют добавлять и отображать дополнительную информацию. Например, хранить метаданные.
Произвольные поля обеспечивают большую часть функциональности плагинов и тем оформления. Например, WooCommerce использует произвольные поля для хранения дополнительной информации о продукте:
А плагин календаря событий будет использовать их для хранения дополнительной информации о мероприятиях:
Когда использовать произвольные поля?
Произвольные поля обладают несколькими важными преимуществами:
WordPress предоставляет встроенный функционал произвольных полей
В классическом редакторе постов и страниц произвольные поля можно включить в «Настройках экрана». В новом блочном редакторе их можно активировать в разделе параметров:
Как получить доступ к произвольным полям в редакторе WordPress.
Затем можно ввести значение и идентификатор произвольного поля.
Встроенная функциональность произвольных полей в WordPress
Но это не самый удобный способ работы с произвольными полями. Поэтому многие используют плагин Advanced Custom Fields.
Advanced Custom Fields упрощает дело
Плагин Advanced Custom Fields упрощает интерфейс добавления и управления произвольными полями в административной панели и процесс их отображения на страницах сайта.
С помощью этого плагина вы сможете использовать календарь для выбора даты, чекбоксы и другие элементы управления:
Advanced Custom Fields в блочном редакторе.
Плагин предоставляет более 30 различных типов произвольных полей, которые можно добавить в посты, таксономии, комментарии и даже страницы параметров.
Бесплатная или платная версия плагина Advanced Custom Fields?
Бесплатная версия плагина доступ практически ко всем типам произвольных полей и функциям. Но версия Pro предоставляет более обширный функционал:
Как добавлять произвольные поля с помощью Advanced Custom Fields
Допустим, что есть блог о беге, в каждом посте которого автор делиться достигнутыми результатами:
Чтобы предоставить эту информацию, потребуется пять произвольных полей. Разделим это руководство на две основные части, в которых мы рассмотрим:
1. Создание новой группы произвольных полей
После установки и активации бесплатной версии плагина Advanced Custom Fields в левой боковой панели перейдите в раздел Произвольные поля > Добавить.
Группа полей – это несколько произвольных полей, которые отображаются вместе на панели инструментов WordPress. В этом примере мы создадим одну группу произвольных полей, состоящую из пяти элементов.
Дайте создаваемой группе полей имя, а затем выберите область ее отображения. В этом примере мы хотим вывести произвольные поля для обычных постов в блоге. Поэтому используем значение по умолчанию ( Post ).
Вы также можете настроить несколько правил для отображения создаваемых произвольных полей сразу в нескольких местах.
Создание новой группы полей ACF
2. Добавьте произвольные поля
Нажмите кнопку «+Добавить поле», чтобы создать первое произвольное поле.
Добавление нового произвольного поля
Это действие откроет перечень свойств. Два наиболее важных из них:
Настройка произвольного поля
Далее введите варианты состояния переключателя
Ввод вариантов состояния переключателя
Рассмотрим другой пример: произвольное поле для отображения расстояния пробега. На этот раз используем тип данных «Число»:
Создание числового поля
Также можно добавить единицы измерения расстояния, а также проверку минимального и максимального значений.
Больше настроек произвольных полей
Повторите этот процесс для всех других полей, которые вы хотите создать.
5 различных полей ACF
3. Настройте параметры и опубликуйте
Чтобы сохранить внесенные изменения, прокрутите вниз до поля настроек. С их помощью можно управлять отображением произвольных полей в редакторе WordPress.
В большинстве случаев подойдут значения по умолчанию. Но можно и поэкспериментировать с ними.
Настройка параметров группы полей ACF
После этого опубликуйте свою группу произвольных полей, чтобы она отобразилась на сайте.
4. Добавьте дополнительную информацию в редакторе WordPress
После публикации группа произвольных полей появится при создании нового поста.
Advanced Custom Fields в редакторе WordPress.
Информация, вводимая в них, будет храниться в базе данных WordPress.
Обзор условной логики
Плагин Advanced Custom Fields поддерживает условную логику, которая позволяет отображать/скрывать произвольные поля в зависимости от информации, введенной пользователем в предыдущем поле.
Допустим, автор блога захотел рассказать о своих путешествиях. Поэтому нет смысла отображать поля с информацией о беге.
Пример условной логики
Если установите флажок, появятся произвольные поля с информацией о беге. Если вы не установите его, они останутся скрытыми.
Остальные произвольные поля отображаются при установке флажка
Чтобы настроить условную логику, необходимо отредактировать ранее созданную группу полей и добавить новое поле « Да/Нет» для условия «Этот пост о беге?»:
Добавление поля «Да/Нет»
Добавление уловной логики к другим полям
Как отображать условные поля на сайте
Созданные произвольные поля пока не появляется на сайте.
Произвольные поля не отображаются на сайте
Давайте исправим это. Существует несколько способов произвольных полей на страницах сайта:
Как добавить произвольные поля в файлы шаблона темы оформления
Это способ предполагает редактирование шаблонов используемой темы оформления. Но он гарантирует, что ваши произвольные поля всегда будут автоматически отображаться в одном и том же месте.
После этого нужно использовать функцию Advanced Custom Fields the_field() для отображения информации из произвольного поля. Например:
Например, чтобы отобразить произвольное поле «Цель», используйте приведенный ниже код:
Как пользоваться Advanced Custom Fields
Название WordPress плагина Advanced Custom Fields переводится как – расширенные произвольные поля. Скажем по простому, что этот плагин существенно расширяет возможности уже встроенных в WordPress произвольных полей – Custom Fields. В дальнейшем я буду использовать сокращенное название плагина – ACF.
Кому будет полезен ACF?
Плагин ACF имеет один очень существенный недостаток, без базовых знаний по PHP, будет сложно править шаблоны темы, да и знания по HTML/CSS, так же окажутся не лишними. Получается, что пользоваться плагином новичку будет трудно.
ACF отлично подходит для профессиональной веб-разработки, зачастую запросы и пожелания клиентов выходят за рамки стандартного функционала WordPress-а.
Кроме того, когда вы делаете сайт на заказ на CMS, клиент в идеале должен получить, весь контент полностью редактируемый из админки и без возможности случайно затереть код. Что я имею ввиду? Приведу простой пример использования дополнительного текстового поля в записи блога.
Легенда
Заказчик ведет блог кинорецензий, в низу каждой записи с рецензией, он хочет выводить список с оценками фильма, например как здесь, не обращаем внимание на оформление.
Вы скажите: «Да не вопрос, я и без плагина справлюсь!» ОК, посмотрим.
Вывод списка без плагина
Откроем запись со статьей в окне редактирования и пропишем теги маркированных списков с оценками.
А что не нравится, выглядит нормально, осталось только задать стили.
Можно было бы не заморачиваться с плагином, в случае если вы делаете блог для себя. Но, мне трудно представить, что заказчик, прописывая текст между тегами, случайно их не затрет. Нет, дорогой разработчик, так не пойдет. Давайте теперь посмотрим, как мы сделали бы, то же самое, но с плагином и почему этот вариант, заказчику должен понравиться больше.
Вывод списка с плагином ACF
Сайт плагина: https://www.advancedcustomfields.com
Собственно ради этой панели редактирования, мы и ставили плагин. Теперь довольный клиент может безопасно редактировать и создавать новые дополнительные поля, не касаясь никаких HTML тегов.
Вывод произвольных полей в шаблоне
the_fields – базовая функция WordPress-а, которая выводит значение из текстового поля всех постов с аргументом text. У нас будут свои названия аргументов и HTML теги тоже другие.
Теперь надо определиться с шаблоном, куда вставлять код. Поскольку мы имеем дело с контентом, выводимом в цикле, то и вставлять следует в файл content.php, текущей темы. Я для примера использую дефолтную тему Twenty Seventeen. Вставьте код перед закрывающим тегом div с классом entry-content.
Визуально, на сайте, вы увидите такие же списки, как и в первом варианте без плагина. Вся разница только в удобстве редактирования контента для клиента.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.
Что такое ACF?
Обзор
Advanced Custom Fields плагин для WordPress делает работу с произвольными полями легкой и быстрой. Произвольные поля встроены в WP, но они довольно неудобны в настройке и не удобны для пользователя. На скриншотах ниже показана разница между встроены ми произвольными полями и Advanced Custom Fields.


Группы полей
В Группах полей хранятся произвольные поля, условия отображения и визуальные настройки. Каждой группе можно указать где она должна выводится на основе массы настроек. Типичная группа полей выглядит так:
Встроенные произвольные поля
Внутри группы полей можно создавать отдельные произвольные поля. К примеру, создаем группу полей «Артисты» и в ней 2 поля «Имя» и «Изображение».
Каждое поле имеет множество параметров, которые меняют тип(текст, изображение, редактор wysiwyg, списки и т.д.), значение по-умолчанию, зависимости и многое другое. В платной версии плагина доступны еще больше полей, упрощающих Вашу жизнь, повторитель, галерея, гибкое содержание и даже глобальные настройки сайта!
Местоположение
Вы можете очень гибко настроить где отображать группу полей. В этом Вам помогут логические конструкции или/и, позволяющие указать в каких таксономиях нужно выводить поля.
Настройки отображения
Позволяет настроить визуальное отображения для группы полей. Также можно скрыть ненужные элементы интрфейса, чтобы не отвлекать пользователя. К примеру, можно скрыть стандартное окно редактирования и поставить туда свое. Это позволяет «разгрузить» рабочее пространство и сделать более удобным процесс работы.
Вывод значений ACF в темах
В ACF встроенно множество мощных и полезных функций для работы с данными. Они основаны на встроенных функциях WP, но более гибкие и удобные. Благодаря этому код становится компактнее и умнее.
При работе с ACF рекомендуется иметь базовые представления о работе с WordPress темами и основы PHP. Функция the_field(‘hero_text’) выведет значение поля в нужном месте, а get_field(‘hero_text’) вернет значение поля в переменную. Прочитайте все доступные функции, чтобы быть во всеоружии и использовать по-полной возможности ACF!
Заключение
ACF — это плагин позволяющий глубоко настроить произвольные поля под свои нужды. Однако, не забываете, что данные нужно вывести в теме.
ACF — легкий, но мощный плагин. Вы можете создать формы, глобальные настройки для сайта и многое другое. Попробуйте! Вам понравится!
Интернет-магазин «acfwp.ru», расположенный на доменном имени acfwp.ru, именуемое в дальнейшем «Продавец», публикует Публичную оферту о продаже Товара дистанционным способом.
1.1. Публичная оферта (далее – «Оферта») — публичное предложение Продавца, адресованное неопределенному кругу лиц, заключить с Продавцом договор купли-продажи товара дистанционным способом (далее — «Договор») на условиях, содержащихся в настоящей Оферте, включая все Приложения.
1.2. Заказ Товара на сайте Интернет-магазина – позиции, указанные Покупателем из ассортимента Товара, предложенного к продаже, при оформлении заявки на приобретение Товара на сайте Интернет-магазина или через Оператора.
2.1. Заказ Покупателем Товара, размещенного на сайте Интернет-магазина означает, что Покупатель согласен со всеми условиями настоящей Оферты.
2.2. Администрация сайта Интернет-магазина имеет право вносить изменения в Оферту без уведомления Покупателя.
2.3. Срок действия Оферты не ограничен, если иное не указано на сайте Интернет-магазина.
2.4. Продавец предоставляет Покупателю полную и достоверную информацию о Товаре, включая информацию об основных потребительских свойствах Товара, месте изготовления, а также информацию о гарантийном сроке и сроке годности Товара на сайте Интернет магазина, в разделе Контакты.
3.1. Цена на каждую позицию Товара указана на сайте Интернет-магазина.
3.2. Продавец имеет право в одностороннем порядке изменить цену на любую позицию Товара.
3.3. В случае изменения цены на заказанный Товар Продавец обязуется в течение 10 дней проинформировать Покупателя об изменении цены Товара.
3.4. Покупатель вправе подтвердить либо аннулировать Заказ на приобретение Товара, если цена изменена Продавцом после оформления Заказа.
3.5. Изменение Продавцом цены на оплаченный Покупателем Товар не допускается.
3.6. Продавец указывает стоимость доставки Товара на сайте Интернет-магазина либо сообщает Покупателю при оформлении заказа Оператором.
3.7. Обязательства Покупателя по оплате Товара считаются исполненными с момента поступления Продавцом денежных средств.
3.8. Расчеты между Продавцом и Покупателем за Товар производятся способами, указанными на сайте Интернет-магазина в разделе Контакты
4.1. Заказ Товара осуществляется Покупателем сервис сайта Интернет-магазина acf.acfwp.ru.
4.2. При регистрации на сайте Интернет-магазина Покупатель обязуется предоставить следующую регистрационную информацию:
4.2.1. фамилия, имя, отчество Покупателя или указанного им лица (получателя);
4.2.2. адрес, по которому следует доставить Товар (если доставка до адреса Покупателя);
4.2.3. адрес электронной почты;
4.2.4. контактный телефон.
4.3. Наименование, количество, ассортимент, артикул, цена выбранного Покупателем Товара указываются в корзине Покупателя на сайте Интернет-магазина.
4.4. Если Продавцу необходима дополнительная информация, он вправе запросить ее у Покупателя. В случае не предоставления необходимой информации Покупателем, Продавец не несет ответственности за выбранный Покупателем Товар.
4.6. Принятие Покупателем условий настоящей Оферты осуществляется посредством внесения Покупателем соответствующих данных в регистрационную форму на сайте Интернет-магазина или при оформлении Заказа через Оператора. После оформления Заказа через Оператора данные о Покупателе регистрируются в базе данных Продавца. Утвердив Заказ выбранного Товара, Покупатель предоставляет Оператору необходимую информацию в соответствии с порядком, указанном в п. 4.2. настоящей Оферты.
4.7. Продавец не несет ответственности за содержание и достоверность информации, предоставленной Покупателем при оформлении Заказа.
4.8. Покупатель несет ответственность за достоверность предоставленной информации при оформлении Заказа.
4.9. Договор купли-продажи дистанционным способом между Продавцом и Покупателем считается заключенным с момента получения Продавцом сообщения о намерении Покупателя приобрести Товар.
5.1. Продавец оказывает Покупателю услуги по доставке Товара одним из способов указанных на сайте Интернет-магазина.
5.2. Если Договор купли-продажи товара дистанционным способом (далее – Договор) заключен с условием о доставке Товара Покупателю, Продавец обязан в установленный Договором срок доставить Товар в место, указанное Покупателем, а если место доставки Товара Покупателем не указано, то по месту его жительства или регистрации.
5.3. Место доставки Товара Покупатель указывает при оформлении Заказа на приобретение Товара.
5.4. Срок доставки Товара Покупателю состоит из срока обработки заказа и срока доставки.
5.5. Доставленный Товар передается Покупателю, а при отсутствии Покупателя — любому лицу, предъявившему квитанцию или иной документ, подтверждающий заключение Договора или оформление доставки Товара.
5.7. Информация о Товаре доводится до сведения Покупателя в технической документации, прилагаемой к Товару, на этикетках, путем нанесения маркировки или иным способом, принятым для отдельных видов товаров.
5.8. Сведения об обязательном подтверждении соответствия Товара представляются в порядке и способами, которые установлены законодательством Российской Федерации о техническом регулировании, и включают в себя сведения о номере документа, подтверждающего такое соответствие, о сроке его действия и об организации, его выдавшей.
Внимательно ознакомьтесь с текстом публичной оферты, и если Вы не согласны с каким-либо пунктом оферты, Вы вправе отказаться от покупки Товаров, предоставляемых Продавцом, и не совершать действий, указанный в п. 2.1. настоящей Оферты.
Как устроены Advanced Custom Fields в WordPress
Часть 1. Немного лирики
Чаще всего в сети публикуются материалы по начальному уровню работы с WordPress. В лучшем случае обсуждаются документированные возможности самого WordPress и его различных плагинов. Я стою на позиции, что работа с документацией и использованием документированных возможностей — инструментами, которые вам предоставил разработчик — является приоритетной в разработке. Однако иногда документированных возможностей не хватает и как ответ на этот случай появилась эта статья.
Advanced Custom Fields (ACF) – один из популярных плагинов WordPress. Основная задача — создание блоков дополнительной информации к Постам, Страницам и Товарам. Плагин настолько популярен, что вопросы по нему входят в список MustKnow на различных собеседованиях.
Ничего не имею против самого плагина — это очень удобный инструмент, с широкими возможностями. Имеет встроенную возможность выводить редактирование статей во фронтенд. Позволяет создавать поля по условию и связывает поля с нужными постами. Например, для новостного сайта вы решили в блоке спортивных новостей создать дополнительный тег с указанием вида спорта, чтобы не забывать это делать, вы создаете поле типа select, которое будет появляться при выборе категории «Спорт» и требуете его обязательного заполнения.
Конечно, чтобы описать стандартные возможности ACF мало приведенного примера. Используют ACF в самых различных случаях, документацию плагина вы сможете найти на официальном сайте. Для тех, кто ещё не освоил иностранные языки есть неплохой сайт с документацией на русском языке.
В моем случае не нашлось достаточных документированных инструментов и пришлось разбираться с устройством ACF.
Часть 2. Получаем ACF поля
Стандартный функционал ACF не предлагает возможности запроса по условиям. Вывод полей происходит в связке с ID поста. Это связано с особенностями сохранения в базе данных. Условие «Категория товара» не привязывается к сохраняемой информации. Поэтому начинаем искать поля и условия.
Самая востребованная таблица базы данных posts, что связано с широким набором инструментов разработанных для данной таблицы. Именно в ней и хранятся наши поля. Для полей ACF зарезервированы два типа записей — в колонке ’post_type’ мы находим поля типов ’acf-field-group’ и ’acf-field’. Первый тип записей, как следует из его названия, отвечает за группу полей, второй тип записей отвечает непосредственно за поле. Связка между ними происходит по полю ’post_parent’.
Теперь, когда мы знаем где находятся наши поля, необходимо разобраться с условиями. Мы же не планировали выдавать поля списком, тем более, что это и есть наша основная задача — выдавать поля по условию. Всю необходимую нам информацию содержит колонка ’post_content’.
В ней в формате сериализованного массива сохранены условия и значения. Причем условия выдачи привязаны к группе полей, поэтому для разбора условий вам необходимо получить данные по группе, которые выглядят примерно так:
Вы будете проверять по своим условиям, для понимания всей этой белиберды выделю пункты, которые важны по данному полю:
Здесь содержится вся нужная нам информация:
параметр условия «post_taxonomy»;
значение по условию должно быть «==»;
ну и само значение «product_cat:fruit»;
Теперь мы знаем какую группу полей нам необходимо использовать, можно переходить к самим полям. Выборку полей производим по колонке ’post_parent’. У нас есть названия и ID полей, но пока мы не знаем типы полей и связанные с ними условия. Вновь переходим к данным поля ’post_content’, теперь наши данные выглядят немного иначе:
Здесь для нас упакованы сведения связанные с выводимым полем:
обязательное для заполнения — «required»;
класс, длина, значение по-умолчанию, плейсхолдер и т. д.
Теперь получив эту информацию мы можем приступить к созданию своего запроса и передаче полей во фронтенд. То есть при выборе категории отправляем запрос в базу данных, находим группу полей по условиям, выбираем поля и подготавливаем форму.
Часть 3. Сохраняем информацию
Но остался ещё один вопрос — что делать с полученной информацией? Поэтому нам необходимо разобраться как сохраняется информация ACF.
Для дополнительной информации, возможных настроек постов в WordPress предусмотрена специальная таблица postmeta. В ней хранится самая различная информация и, конечно, разработчики ACF использовали эту возможность. Но следует учесть, что использовали они не прямой подход.
Обычная запись в таблице postmeta состоит из 4 полей — уникальный ключ в БД (порядковый номер записи), ID поста с которым связано поле, идентификатор (по которому разработчик получает поле функцией get_post_meta () ) и значение.
В основном этого достаточно, чтобы иметь связанную информацию. Но ACF разработчики разбили задачу на две составляющие:
при сохранении данных ACF вносятся запись с именем поля и со значением.
ключ _sort содержит ссылку на post_name поля ACF из таблицы posts, а запись с ключом sort (без подчеркивания) сохраняется значение поля.
Вот и всё. Надеюсь, что полученные знания помогут вам в разработке. Всем удачи!



























