Плагин ACF: advanced custom fields wordpress

Привет всем, как и обещал сегодня опишу очень функциональный плагин для создания произвольных полей - Advanced Custom Fields WordPress. Долго чет не мог собраться с мыслями и вот наконец то пришла муза. Приступим.

advanced custom fields wordpress

Плагин Advanced Custom Fields на сегодня (20.08.15) имеет более 1 миллиона активных инсталов и это число продолжает упорно расти. Он предназначен для работы с произвольными полями у ВП, но в отличии от остальных плагинов умеет создавать не только custom field для постов / страниц, а и для других частей сайта.

 acf-type

ACF может создавать произвольные поля для:

  • постов / страниц;
  • категорий;
  • меток;
  • таксономий;
  • пользовательских типов;
  • пользователей;
  • всего сайта, в отдельную вкладку, с помощью дополнения.

Прикладываю скриншот справа для всех типов полей на тот случай если я что то пропустил.

Теперь вдумайтесь, для всех этих блоков произвольных полей Advanced Custom Fields WordPress может создавать данные такого типа:

 Тип данных произвольного поля  Описание / скин

текст / input

 

Обычное типичное текстовое поле

acf-type-1 acf-type-1-2

Область текста / textarea

 

Область текста с конвертацией хтмл тегов и новых линий без редактора.

acf-type-2

текстовые поля: телефон, email, пароль

 

Не чем не отличающие поля от аналогов хтмл.

 

Редактор WYSIWYG

 

Вставляет редактор в поле для ввода произвольного поля текст. Выглядит это вот как то так:

acf-type-3 и редактор имеет множество своих настроек. можно отключить не нужные кнопки.

 

Изображение

 

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

acf-type-4

Файл Поле для сохранения файлов. Работает по аналогии с типом "Изображение", может хранить 3 варианта данных.

Выбрать / он же select

Для этого типа данных описание думаю не нужное, это обычный выпадающий список, просто в системе ACF его название записано по другом, из-за этого возможна коллизия

Чекбокс

Это так сказать 2 в 1, поле которое может выступать как радио кнопка или как обычный чекбокс с множественным выбором

Блок отношения: ссылка / объект / таксономия / взаимоотношения / пользователь

Нет смысла описывать этот тип данных по отдельности. Все они могут сохранять данные о добавленных ссылках, объектах, таксономиях, пользователях.

acf-type-5

jQuery google карта

Тип данных что хранить информацию о координатах объектов, при этом в админке добавляется вот такая google maps:

произвольное поле google maps в ACF

Теперь добавить адрес и указать координаты на google maps из админки WordPress проще чем на большинстве CMS.

jQuery дата

Текстовый блок, который умеет форматировать даты + вот такая незаурядная выпадашка:

дата в advanced custom fields

Выбор цвета

Текстовый блок к которому привинтили вот такой jQuery редактор:

произвольное поле цвет / color в advanced custom fields

Это конечно не полный список всех типов данных для advanced custom fields wordpress, но стоить наверное оговориться что тип данных массив значений, он же repeater, в этом плагине платный и стоить 25$ на официальном сайте. Но это дополнение незаменимо, тем более что купив его раз вы сможете использовать его очень и очень долго.

 

Как работать с advanced custom fields

Полная документация по функциям ACF wordpress находится на официальном сайте: Получить ссылку на (ACF)

Я же постараюсь описать только основные функции работы с произвольными полями, созданными этим плагином.

Любое поле можно получить используя функцию get_field($field_name, $post_id, $format_value):

$field_name - имя поля;

$post_id - идентификатор поста, страницы (по умолчанию это идентификатор поста / страницы, но можно указывать ID таксономии, пользователя, категории и так далее);

$format_value - (true / false) форматировать или нет полученные данные с базы.

Работать с функцией можно вот так:

<?php if($my_field=get_field("my_field")){echo $my_field;}?>

Перед этим конечно нужно создать поле с именем "my_field" и заполнить его через админку. Надо сразу уточнить, что никто не отменял работу функции для wordpress custom fields - get_post_meta, она описанная в указанной ссылке.

Единственный момент: если вы будете использовать get_post_meta вместо get_field для получения изображения, файла, даты, чекбокса - то у вас ничего не получится. Проблема в том что функция вордпреса не знает такого форматирования данных от сюда и проблемы. Для таких типов данных нужно использовать именно get_field.

В принципе, описанной выше функции достаточно для работы с любым полем advanced custom fields. Ей можно получать обычный отформатированный текст, координаты объектов, цвет, дату, взаимоотношение и много другое.

Примеры работы с функцией get_field в advanced custom fields

Получаем и выводим данные с произвольно поля  "Редактор WYSIWYG" он же tinyMCE (если подключен), конечно перед этим нужно не забыть добавить такое произвольное поле:

<?php if($my_txt_tiny=get_field("my_txt_tiny")){echo apply_filters("the_content", $my_txt_tiny);}?>

 

Получаем произвольное изображение из advanced custom fields wordpress:

<?php if($my_img=get_field("my_img")){echo '<img src="'.$my_img.'"/>';}?>

При условии что у нас в базе хранится именно изображение как ссылка:

Изображение в advanced custom fields wordpress

 

Получаем координаты объекта из поля jQuery google maps:

<?php $map=get_field("my_map"); ?>

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

$map[lat]; // широта
$map[lng]; // долгота

 

Получаем текстовое поле для категории:

<?php if($CAT_TXT=get_field("CAT_TXT",get_category($cat))){ echo apply_filters("the_content", $CAT_TXT);}?>

переменная $cat у вашем макете должна быть автоматически заполненная, по этому вам достаточно создать текстовое поле для категории с именем "CAT_TXT", ну и не забыть заполнить его.

 

На этом пока что все, постараюсь в ближайшее время выложить еще несколько постов по работе с плагином advanced custom fields wordpress для создания произвольных полей у вордпресе. Следите за выходом новый записей и жмите лайк если эта статья была вам полезная:

 

P.S.: Плагин advanced custom fields полнофункциональное расширение для wordpress, которое позволяет создавать произвольные поля разной сложности, такие как:

  • текстовое поле;
  • редактор WYSIWYG или tinyMCE;
  • гугл карты / google maps;
  • взаимоотношения между постами, страницами, пользователями, категориями, таксономиями.
Комментарии к записи «Плагин ACF: advanced custom fields wordpress»:
  1. Алекс:

    Добрый день. Добавил текстовое поле в категории рубрик, сделал вывод:
    Всё работает,всё выводится.

    На сайте есть каталог товаров, сделанный на основе рубрик, хотел добавить дополнительный поля там, сделал всё по аналогии, но вывод не работает. Думаю, что изменить нужно что-то в самом выводе, а что не знаю. Подскажите в каком направлении копать. Заранее благодарен.

    • admin:

      Добрый день.
      Советую посмотреть вот этот пост о описании рубрик и таксономий: https://help-wp.ru/vyvesti-opisanie-rubriki-wordpress/

      Так понимаю у вас на рубриках все получилось, а в таксономиях не получается, для таксономии код получения поля такого плана, как вариант:
      $desc_acf=get_field("desc_acf",get_term_by('slug',get_query_var('term'),get_query_var('taxonomy')));

    • Алекс:

      Да, вчера нашёл этот самый код и всё заработало. Спасибо большое

  2. Владимир:

    Интересно, по идее можно же менять таким образом контент в зависимости от входящего рефа? можете подсказать как?

  3. Алексей:

    Установил. В админке всё настроил. В файл single.php вставил код. Не отображается.

    • admin:

      Добрый день.
      Если нужна помощь опишите пожалуйста проблему более подробно.
      Код который вставляли, лучше скин как он вставлен.
      Имя поля правильно указали? Значение заполнили?

  4. Дима:

    Реально крутой плагин, пользуюсь им уже больше года и все никак не нарадуюсь.
    Плохо что дока на английском, на русском мало и приходится віискивать по частям.
    Благодаря плагину advanced custom fields, wordpress стал более привлекательной системой для создания сайтов.

  5. Александр:

    Установил плагин, создал поля, группы. Но они не отображаются на странице редактирования страницы и записи.

    Тема своя, может что-то дописать в functions нужно?

    Подскажите пожалуйста.

    • admin:

      Добрый день.
      Видимо доп поля у вас скрыты в настройках. Посмотрите справа в верху редактора поста есть вкладка "Настройка экрана"
      Думаю причина в этом.

  6. Alex:

    Нужно вывести значения из acf в теме newspaper. Пишите на почту плиз обсудим.

  7. Геннадий:

    Здравствуйте!Мне необходимо настроить плагин advancedcustomfields для кулинарных рецептов или установить его с настройкой.И еще сколько у Вас будет стоить установить разметку
    (-url-) для кулинарных рецептов.

    • admin:

      Добрый день. ответил вам на почту

  8. Сергеева Ирина:

    Здравствуйте.
    Вам можно скинуть ТЗ на оценку, нужно с помощью advanced custom fields wordpress расширить функционал сайта.
    Ответьте плз. на почту, я вам в ответе вышлю ТЗ. Если цена устроить то можно было б поработать 🙂

Сделать заказ
Онлайн помощь по WordPress