Статьи

Начало работы с расширенными настраиваемыми полями (ACF)

Зачем использовать пользовательские поля?

Я не могу начать выражать, насколько я был поражен, когда начал работать с Advanced Custom Fields (ACF) . Когда я начал использовать WordPress, я понял, как сгибать сообщения и страницы, чтобы сделать намного больше, чем следовало бы. Я дал бы клиентам очень конкретные инструкции для использования категорий и родительских страниц в запутанных путях. Затем я обнаружил пользовательские типы записей, и мои инструкции стали намного проще.

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

Как насчет плагинов?

Одним из решений этой проблемы является поиск плагина для каждого вида пользовательского контента, который вам нужен. Установите WooCommerce для продуктов, Календарь событий для событий, Meet My Team для сотрудников, Soliloquy для слайдов или WPP для элементов портфолио. Это работает для многих людей: поначалу так быстрее развиваться.

Тем не менее, я не фанат плагинов «шведский стол» по двум причинам. Во-первых, каждый добавляемый вами плагин влияет на скорость сайта (вряд ли он увеличится!). Скорее всего, каждый добавляемый вами плагин с типом контента будет добавлять свои собственные файлы JS и CSS во внешний интерфейс. Вы можете буквально наблюдать падение рейтинга Page Speed, когда вы добавляете эти плагины. Во-вторых, большинство используемых вами плагинов будут отличаться от вашей темы (за исключением премиум-тем, которые «совместимы» с основными плагинами). Это будет иметь один из двух отрицательных результатов: либо ваш сайт будет выглядеть так, как будто он был исправлен из трех или четырех плагинов, либо вы потратите кучу времени на переопределение плагина CSS, чтобы типы контента плагина выглядели так, как будто они принадлежат вашей теме.

Типы полей ACF

Расширенные пользовательские поля (ACF) позволяют прикрепить практически любой вид настраиваемого поля к вашим типам записей.

Типы включенных полей

Плагин ACF поставляется с более чем 20 типами полей по умолчанию:

Типы пользовательских полей

  • Текст : однострочное текстовое поле, дополнительная поддержка HTML, ограничение по количеству символов
  • Текстовая область : многострочное текстовое поле, дополнительная поддержка HTML, ограничение по количеству символов
  • Число : число, мин / макс значения
  • Электронная почта : проверка ввода электронной почты
  • Пароль : Маскирует текст для ввода пароля
  • Редактор Wysiwyg : опциональная вставка носителей WP, основные / полные кнопки редактора
  • Изображение : Загрузить изображение или выбрать из библиотеки WP, вернуть объект, URL или ID
  • Файл : Загрузить файл или выбрать из библиотеки WP, вернуть объект, URL или ID
  • Выберите : предоставить параметры в раскрывающемся списке, поддерживает множественный выбор
  • Флажок : разрешить выбор нескольких элементов в списке флажков
  • Переключатель : выбор отдельного элемента из списка переключателей
  • Истина / Ложь : простой выбор истина / ложь
  • Ссылка на страницу : возвращает URL любого сообщения или страницы, может быть ограничена определенными типами сообщений
  • Объект публикации : Возвращает объект WP любого сообщения или страницы, может быть ограничен определенными типами сообщений или таксономиями.
  • Отношение : То же, что и пост-объект, но с улучшенным интерфейсом и переупорядочением методом перетаскивания
  • Таксономия : возвращает объект или идентификатор для одного или нескольких терминов таксономии, может быть ограничен тегами, категориями или пользовательскими таксономиями.
  • Пользователь : выберите одного или нескольких пользователей, может быть ограничено ролью
  • Google Map : установить широту / длину по центру, уровень масштабирования и ширину
  • Выбор даты: выберите календарную дату, верните форматированную строку даты
  • Выбор цвета: выберите шестнадцатеричный цвет
  • Сообщение : нет вариантов, оставьте сообщение для пользователей
  • Tab : собрать следующие поля в интерфейс вкладки

Бесплатные поля дополнений

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

Платные поля дополнений

Есть несколько премиальных дополнений ACF, которые очень полезны. Большинство стоит около $ 25 и, на мой взгляд, того стоит.

Повторитель: Поле повторителя ACF позволяет пользователям разрабатывать сложные макеты с любым количеством полей. Например, поле повторителя может содержать текстовое поле, поле изображения и поле WYSIWYG, позволяя пользователям создавать список «служб» со значком, заголовком и описанием.

Гибкое содержимое. Поле гибкого содержимого ACF позволяет пользователям настраивать несколько макетов (каждый из которых состоит из нескольких полей), которые затем можно выбирать и использовать в любом порядке на странице. Смотрите этот учебник Snow Fall для примера полей гибкого контента в действии.

Страница параметров: надстройка страницы параметров ACF позволяет разработчикам создавать настраиваемые страницы параметров на панели инструментов, а затем прикреплять к этим страницам любой набор настраиваемых полей. Это очень полезно для сбора данных по всему сайту, таких как адрес компании, ссылки в социальных сетях, номер телефона или параметры цвета темы.

Присоединение групп полей к контенту

Группы полей ACF могут быть присоединены к контенту по любым критериям: тип публикации, шаблон страницы, родительская страница, категория публикации или тег, сами таксономии, медиа и пользователи.

Настройка местоположения группы полей

На странице «Правка» для содержимого, к которому присоединена группа полей, любые части администратора WordPress по умолчанию могут быть скрыты (редактор, избранные изображения, слаг, автор и т. Д.), А группа полей может быть размещена под заголовком ниже. Редактор или в правом столбце.

Использование полей ACF в шаблонах

ACF предоставляет несколько полезных функций PHP для включения данных пользовательских полей в файлы шаблонов WordPress. Страницы документации ACF содержат много полезной информации. Ниже приведены некоторые из наиболее распространенных используемых функций.

get_field()

Функция get_field('field_name', $post->ID, 'option') возвращает отформатированное содержимое настраиваемого поля, имя которого передается в качестве параметра. Параметр идентификатора поста является необязательным: если эта функция используется вне цикла или для доступа к полям из другого поста или страницы, идентификатор будет необходим. Если поле находится на странице параметров, включите 'option'

Поскольку эта функция возвращает данные, ее можно присвоить переменной или отобразить с помощью printecho

 if ( get_field('sub_title') ) :
	print '<h2 class="sub-title">'.get_field('sub_title').'</h2>;
endif;

the_field()

Функция the_field() содержимое поля, отформатированное в соответствии с параметрами в административной области группы пользовательских полей. Он может принимать те же параметры $post->ID'option'get_field() Это в основном то же самое, что и echo get_field()

 if ( get_field('staff_image') ) :
	the_field('staff_image');
endif;

Подполя

Если настраиваемое поле находится в поле «Повторитель» или в поле «Гибкое содержимое», используйте get_sub_field() и the_sub_field() . Параметры $post-ID'option'

Цикл по полям

Чтобы перебрать все строки в поле повторителя или гибкого поля содержимого, используйте have_rows('field_name', $post->ID, 'option') и the_row() Эти функции работают очень похоже на функции цикла WordPress:

 if ( have_rows('image_rows') ) :
	while ( have_rows('image_rows') ) : the_row();
		the_sub_field('row_icon');
		the_sub_field('row_title');
		the_sub_field('row_text');
	endwhile;
endif;

Поле «Гибкое содержимое» имеет несколько макетов. Функция get_row_layout() возвращает имя макета, используемого на этой итерации цикла.

Вывод

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