Advanced custom fields wordpress

В этом уроке мы будем выводить произвольные поля или как их еще называют мета поля в WordPress. Будем выводить поля заданные плагином Advanced Custom Fields (ACF). В прошлом уроке мы научились создавать мета поля установив плагин Advanced Custom Fields. Это важно, потому что для вывода будем использовать функции которые заданы этим плагином. То есть если вы создали поля без установки этого плагина, то вам следует использовать другие функции. С пояснениями закончили, приступим.

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

Произвольные типы записей и поля:

  1. Добавление произвольных типов записей в WordPress
  2. Вывод произвольных типов записей в WordPress
  3. Добавление произвольных полей к записям в WordPress
  4. Вывод произвольных полей в записях WordPress

 

В плагине ACF есть замечательная документация. Рекомендую обращаться к ней при выводе мета полей в шаблоне WordPress. Знакомство начнем с двух функций.

Часть первая. Теория

Если чувствуете себя уверенно, можно сразу перейти ко второй части.

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

Функция — get_field()

Возвращает значение заданного поля.

Это очень универсальная функция. Ее можно использовать чтобы получить значение, вывести значение (через echo), и взаимодействовать со значением. Обратите внимание, что тип возвращаемой переменной будет соответствовать типу поля (для текстового поля — это будет строка, для изображения — массив, в некоторых случаях — это может быть многомерный массив). Источник

Параметры

<?php $field = get_field($field_name, $post_id, $format_value); ?>

Функция — the_field()

Отображает значение заданного поля. Эта функция аналогична выражению “echo get_field($field_name)”. Источник

Параметры

<?php the_field($field_name, $post_id); ?>    

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

Часть вторая. Практическая

Здесь я приведу готовые блоки кода, которые можно брать и использовать на своем сайте, заменив ID поля на свои значения.

Текстовое поле, текстовый блок

<?php the_field('text'); ?>  <?php the_field('textarea'); ?>

Изображение

Базовый способ. Отображение картинки.

<?php   $image = get_field('image');  if( !empty($image) ): ?>      <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />  <?php endif; ?>

Продвинутый способ. Разбор массива по переменным.

<?php   $image = get_field('image');  if( !empty($image) ):       // vars     $url = $image['url'];     $title = $image['title'];     $alt = $image['alt'];     $caption = $image['caption'];      // thumbnail     $size = 'thumbnail';     $thumb = $image['sizes'][ $size ];     $width = $image['sizes'][ $size . '-width' ];     $height = $image['sizes'][ $size . '-height' ];      if( $caption ): ?>          <div class="wp-caption">      <?php endif; ?>      <a href="<?php echo $url; ?>" title="<?php echo $title; ?>">          <img src="<?php echo $thumb; ?>" alt="<?php echo $alt; ?>" width="<?php echo $width; ?>" height="<?php echo $height; ?>" />      </a>      <?php if( $caption ): ?>              <p class="wp-caption-text"><?php echo $caption; ?></p>          </div>      <?php endif; ?>  <?php endif; ?>    

Упрощенный способ, когда нужно получить только конкретный размер изображения, и конкретный дополнительные параметры:

<?php   $image = get_field('image'); $size = 'full'; // (thumbnail, medium, large, full or custom size)  if( $image ) {      echo wp_get_attachment_image( $image, $size );  }  ?>

Файл

Простой способ. Вывод ссылки на файл.

<?php $myfile = get_field('file'); ?>  <a href="<?php echo $myfile['url']; ?>" >Download File</a>

Расширенный способ. Вывод ссылки, заголовка, подписи и описания файла.

<?php          $myfile = get_field('file');          if( !empty($myfile) ): ?>          <p>             <a href="<?php echo $myfile['url']; ?>" >                 Download File "<?php echo $myfile['title']; ?>"             </a><br>                          <?php echo $myfile['caption']; ?><br>              <?php echo $myfile['description']; ?>          </p>  <?php endif; ?>    

Дебаг для поля с файлом

<?php   //Return value = Object, requires ACF 3.3.7+  $file = get_field('field_name');  // view array of data var_dump($file);  ?>

Календарь

Для вывода даты заданной через date picker, используем:

<?php /* *  Create PHP DateTime object from Date Piker Value *  this example expects the value to be saved in the format: yymmdd (JS) = Ymd (PHP) */  $date = DateTime::createFromFormat('Ymd', get_field('date_picker')); echo $date->format('d-m-Y');  ?>

Сортировка постов по дате заданной через поле выбора даты.

<?php  /* *  Order Posts based on Date Picker value *  this example expects the value to be saved in the format: yymmdd (JS) = Ymd (PHP) */  $posts = get_posts(array(     'meta_key' => 'custom_order', // name of custom field     'orderby' => 'meta_value_num',     'order' => 'ASC' ));  if( $posts ) {     foreach( $posts as $post )     {         setup_postdata( $post );          // ...      }      wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly }  /* *  Format examples */  $js = "yymmdd" $php = "Ymd"  $js = "dd/mm/yy" $php = "d/m/Y"  $js = "yy_mm_dd" $php = "Y_m_d"  ?>

Карта Google

Для отображения карты Google с маркером предлагаю использовать следующий код. Есть два варианта.

Первый способ, с официального сайта по документации по ACF

Первая часть. Отвечает только за генерацию карты Google.

   
<style type="text/css"> .acf-map {     width: 100%;     height: 400px;     border: #ccc solid 1px;     margin: 20px 0; } </style> <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script> <script type="text/javascript"> (function($) { /* *  render_map * *  This function will render a Google Map onto the selected jQuery element * *  @type    function *  @date    8/11/2013 *  @since    4.3.0 * *  @param    $el (jQuery element) *  @return    n/a */ function render_map( $el ) {     // var     var $markers = $el.find('.marker');     // vars     var args = {         zoom        : 16,         center        : new google.maps.LatLng(0, 0),         mapTypeId    : google.maps.MapTypeId.ROADMAP     };     // create map                     var map = new google.maps.Map( $el[0], args);     // add a markers reference     map.markers = [];     // add markers     $markers.each(function(){         add_marker( $(this), map );     });     // center map     center_map( map ); } /* *  add_marker * *  This function will add a marker to the selected Google Map * *  @type    function *  @date    8/11/2013 *  @since  .
$marker.html() )     {         // create info window         var infowindow = new google.maps.InfoWindow({             content        : $marker.html()         });         // show info window when marker is clicked         google.maps.event.addListener(marker, 'click', function() {             infowindow.open( map, marker );         });     } } /* *  center_map * *  This function will center the map, showing all markers attached to this map * *  @type    function *  @date    8/11/2013 *  @since    4.3.0 * *  @param    map (Google Map object) *  @return    n/a */ function center_map( map ) {     // vars     var bounds = new google.maps.LatLngBounds();     // loop through all markers and create bounds     $.each( map.markers, function( i, marker ){         var latlng = new google.maps.LatLng( marker.position.lat(), marker.position.lng() );         bounds.extend( latlng );     });     // only 1 marker?     if( map.markers.length == 1 )     {         // set center of map       .
pt>

Вторая часть. Выводит на карте единичный маркер.

<?php   $location = get_field('location');  if( !empty($location) ): ?> <div class="acf-map">     <div class="marker" data-lat="<?php echo $location['lat']; ?>" data-lng="<?php echo $location['lng']; ?>"></div> </div> <?php endif; ?>

Другой вариант второй части, для вывода нескольких маркеров на карте.

<?php if( have_rows('locations') ): ?>     <div class="acf-map">         <?php while ( have_rows('locations') ) : the_row();               $location = get_sub_field('location');              ?>             <div class="marker" data-lat="<?php echo $location['lat']; ?>" data-lng="<?php echo $location['lng']; ?>">                 <h4><?php the_sub_field('title'); ?></h4>                 <p class="address"><?php echo $location['address']; ?></p>                 <p><?php the_sub_field('description'); ?></p>             </div>     <?php endwhile; ?>     </div> <?php endif; ?>    

Источник

rightblog.ru

Custom Field Suite

Advanced custom fields wordpressCustom Field Suite

Найдете модуль в официальном репозитории на этой странице. Текущая версия на момент написания статьи (2.5.6.1) требует вордпресс от 4.0, имеет более 30 тысяч установок и оценивается в 4.9 баллов из 5-ти возможных. Основная функция — внедрение удобного интерфейса для работы с произвольными полями WordPress, который бы позволял их легко создавать и управлять ими. Плагин Custom Field Suite (CFS) поддерживает 12 типов элементов:

  • Text — текстовая строка;
  • Textarea — поле для текста из нескольких строк;
  • WYSIWYG — графический редактор;
  • True / False — чекбокс (блок с галочкой);
  • Color — выбор цвета;
  • Date — выбор даты;
  • Select — несколько чекбоксов или выпадающий список;
  • File Upload — загрузка файла;
  • User — выбор пользователя;
  • Relationship — виджет для похожих постов;
  • Loop — контейнер повторяющихся полей;
  • Hyperlink — URL ссылки;
  • Tab — объединение группы полей в табы.

Плюс модуля Custom Field Suite в том, что кроме ввода определенных данных (текстов, дат, цветов) здесь есть элементы организации полей: табы и контейнеры. Последний, например, позволяет реализовать галерею на слайдере Owl Carousel 2 за счет создания нескольких повторяющихся объектов «текст + картинка». Табы мне также пригодились в работе. Решение абсолютно бесплатное, функциональное и очень простое.

Вывод произвольных полей в WordPress с помощью CFS

Давайте разберем на реальном примере как вывести произвольные WordPress поля с помощью модуля Custom Field Suite. Алгоритм приблизительно следующий:

1. В самом начале, разумеется, устанавливаем и активируем Custom Field Suite.

2. Далее заходим в админку вордпресс в раздел «Field Groups» (Группа полей). Там содержится список всех созданных вами элементов и кнопка «Add New» (Добавить новую) . С ее помощью можно создать новый набор нужных элементов. Кликаем и видим на открывшейся странице 3 блока для ввода информации:

  • Fields — список всех элементов/полей;
  • Placement Rules — правила размещения;
  • Extras — дополнительные настройки.

Первым делом нужно добавить произвольные поля в WordPress с помощью соответствующей кнопки.

Advanced custom fields wordpressВывод произвольных полей в WordPress с помощью CFS

Для полей требуется определить некоторые настройки, например:

  • тип;
  • название (отображается в админке);
  • имя (используется в коде шаблона, поэтому должно быть на английском);
  • значение по умолчанию;
  • обязательное поле или нет;
  • примечание для редактора.

Большую часть этих характеристик вы встретите и в других типах произвольных полей, однако в каждом из них есть и свои особенности. На картинке выше можете видеть 6 элементов, 3 из которых являются табами (tabs), а 3 текстовой областью. В результате в админке пользователь увидит следующую картинку:

Advanced custom fields wordpressВывод произвольных полей

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

3. Как я говорил выше, на этой же странице есть блоки настроек Placement Rules и Extras. Полезнее всего первый, т.к. там создаются условия для вывода произвольных полей в WordPress админке.

Advanced custom fields wordpressпроизвольные поля в WordPress с помощью CFS

Ограничения показа могут касаться:

  • Post Types — типов записей (посты, страницы, товары);
  • Post Formats — форматов постов (обычный, видео, цитата, ссылка);
  • User Roles — пользовательских ролей (админ, автор, редактор);
  • Posts — конкретных записей;
  • Taxonomy Terms — терминов таксономии;
  • Page Templates — шаблонов страниц.

В примере выше я использовал последний вариант, поскольку нужно было добавить произвольные поля в WordPress только для страницы контактов (она имела специальный шаблон). Теоретически можно было бы воспользоваться опцией Posts.

4. Финальная и самая основная стадия интеграции Custom Fields — вывод значений произвольных полей в WordPress файле шаблона. Для этого используется специальная функция get. Например:

Отображение значения поля contacts_email

echo CFS()->get( 'contacts_email' );

Считывание всех значений для текущей записи

$fields = CFS()->get();

Вывод произвольного поля contacts_email для поста с ID=71

echo CFS()->get( 'first_name', 71 );

Вариант с циклом для галереи:

$loop = CFS()->get( 'gallery' ); foreach ( $loop as $row ) { echo $row['gallery_title']; echo $row['gallery_image']; }

Детальное ее рассмотрение и примеры найдете на странице описания API плагина Custom Field Suite. Кроме нее есть еще функции поиска полей, отображения их свойств, создание форм и т.п.

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

<div class="contacts"> <?php $contacts_item1 = CFS()->get( 'contacts_email' ); if( ! empty($contacts_item1) ): ?> <div class="contacts-item contacts__email"> <?php echo __( $contacts_item1 ,'newsite'); ?> </div><!-- .contacts-item --> <?php endif; ?>  <?php $contacts_item3 = CFS()->get( 'contacts_phone' ); if( ! empty($contacts_item3) ): ?> <div class="contacts-item contacts__phone"> <?php echo __( $contacts_item3 , 'newsite'); ?> </div><!-- .contacts-item --> <?php endif; ?> </div>

Здесь, во-первых, используется условный оператор «IF !empty» для проверки не пустое ли у нас поле, во-вторых,  с помощью __() я вывожу значение произвольного поля с учетом выбранного языка сайта.  Для локализации используется плагин qTranslate-X.

5. После завершения манипуляций по добавлению и выводу произвольных полей в WordPress вам нужно лишь зайти в админку на нужную страницу и заполнить соответствующие тексты/данные. После этого перейдите на сам сайт и проверьте все ли корректно отображается. Если нет, весь алгоритм по работе с плагином Custom Field Suite нужно будет тщательно проверить и повторить.

Advanced Custom Fields

Advanced custom fields wordpressAdvanced Custom Fields

По WordPress плагину произвольных полей Advanced Custom Fields вообще создан отдельный сайт с описанием, документацией и подсказками. Сразу замечу, что в нем есть 2 версии — обычная бесплатная и PRO. Первую совершенно спокойно можно скачать отсюда с официального репозитория вордпресс. Оценка 4.9, минимальная версия WP — 3.5 и более миллиона загрузок!

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

Advanced Custom Fields имеет чуть больше типов пользовательских полей, которые разделены на 6 групп:

  • Базовые: текстовая строка и область.
  • Выборка: чекбоксы, True / False, выпадающий список, Radio Button.
  • Контент: файлы, галерея, картинка, текстовый редактор, встраиваемый объект oEmbed.
  • Элементы jQuery: цветовая палитра, выбор даты/времени, Google карта.
  • Для разметки: отображение (клонирование) определенных полей, гибкий элемент контента (Flexible Content), табы, повторяющиеся элементы.
  • Связи: URL линк, таксономия, объект поста, ссылка на объект.

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

Advanced custom fields wordpressПлагин произвольных полей Advanced Custom Fields

Разобраться с интеграцией Advanced Custom Fields даже для начинающего разработчика не будет проблемой. Кроме того, в самой админке плагин имеет весьма приятный интерфейс. В разделе Add-ons на официальном сайте найдете несколько модулей для расширения функциональности — поддержка Font Awesome, дополнительные поля для таблиц и аккордеона, переводы через qTranslate.

В принципе, можно было сказать, что плагин является идеальным, если бы не одно «но». Дело в том, что добавить произвольные поля типа галереи, гибкого контента и повторяющегося элемента можно только в PRO версии. Поэтому мне пришлось создавать слайдер картинок через связку Custom Field Suite + Owl Carousel 2. С другой стороны, стоимость PRO для одного сайта ($25) может быть включена в общую смету сайта, а если вы часто разрабатываете проекты, то пожизненная лицензия ($100) окупится достаточно быстро. Там же есть Add-on для создания страницы настроек Options Page в WP через произвольные поля, что также может пригодиться (как альтернатива соответствуюших фреймворков).

Итого. Если вам нужно добавить произвольное поле в WordPress простого типа (текст, картинка, ссылка), то тут подойдет любой плагин — Custom Field Suite или Advanced Custom Fields. Выбирайте тот, что больше нравится. Если же требуются повторяющиеся поля (цикл), то бесплатно эта функция есть только в первом модуле.

x-inside.ru

Создаем произвольные поля ACF

Для начала вам нужно скачать плагин с официального сайта и установить его. Как делать это думаю объяснять не нужно. После активации плагина в меню админки появится дополнительная вкладка «Произвольные поля».

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

Развернув данную вкладку, мы увидим 3 подменю:

  • Произвольные поля – здесь мы и будем производить все основные настрйоки;
  • Экспорт – здесь вы сможете экспортировать все ваши настройки и созданные поля, жаль только импортировать их в бесплатной версии вы вряд ли сможете потом;
  • Аддоны – дополнительные бесплатные и платные плагины, работающие в совокупности с Advanced Custom Fields.

Итак, давайте посмотрим, что и как нужно делать. Переходим во вкладку «Произвольные поля», сверху видим кнопку «Добавить новую». Нажимаем и попадаем на новую страницу.  Здесь мы видим следующее:

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

  1. Область, в которой задается название группы произвольных полей. Здесь все просто – пишите любое название, какое вам будет удобно.
  2. Область, в которой мы и будем создавать произвольные поля. Ее мы рассмотрим подробно чуть ниже.
  3. Местоположение – довольно важная область, в которой мы будем определять, где и кому будут доступны или показаны созданные нами произвольные поля. Например, мы можем задать условие, что поля будут отображаться только при добавлении новых записей и только для администраторов. Настройка довольная гибкая и позволяет выставлять практически любые условия, начиная от типов записей, таксономий и заканчивая типам пользователей. Причем условия выставляются по принципу «И» и «ИЛИ». В первом случае, поля будут видны только если все условия были выполнены, а во втором, если одно из условий совпадет.

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

  1. Группа опций, для более тонкой настройки. Здесь задается очередность отображение. Например, если у вас будет несколько блоков с полями, то вы сможете сортировать порядок их отображение. Кроме того, сможете указать позицию расположение, до или после содержания. Грубо говоря вы указываете где будут находиться ваши поля, до визуального редактора, после него или же сбоку. Для примера, я показал, как поля будут отображаться перед редактором записей. Также мы можем выбрать стиль оформления. На скрине выше показан стиль WP metabox. Можете выбирать тот, который вам понравится. В этом же меню, вы сможете указать области, которые вы хотите скрыть там, где будут использоваться произвольные поля. Например, скрыть текстовый редактор или рубрики, чтобы не мешались.

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

Обратите внимание, что скрываться они будут не со всего сайта, а из админки, и то только в том месте, где вы укажете сами. Например, если вы поставили условие, что произвольные поля будут выводиться при добавлении новой записи, и скрыли там текстовый редактор, то на добавление новой страницы, это условие действовать не будет.

С основными настройками, я думаю разобрать будет не сложно. Поэтому давайте рассмотрим принцип добавления произвольных полей на сайт. Каждый раз, добавляя поле, вам нужно будет нажимать на кнопку «Добавить поле». Раскрывается следующее меню. С множеством настроек. Давайте рассмотрим их подробнее.

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

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

Имя поля – уникальное название, которое будет учитываться при выводе значений. Имя должно быть уникальным у каждого поля, и прописывать латиницей.

Тип поля – плагин ACF позволяет создавать не только текстовые поля, но и:

  • Область текста – область для большого текста, например, для описания компании или услуги;
  • Номер – поле для ввода только цифр;
  • E-mail – поле для указания электронной почты;
  • Пароль – поле для ввода пароля;
  • Редактор WYSIWYG – текстовый редактор, точно такой же, как при добавлении новых записей;
  • Изображения – возможность загрузить картинку или фотографию;
  • Файл – поле для загрузки файла на сайт;
  • Выбрать – поле input для выбора значения из сворачиваемого списка;
  • Чекбокс – чекбокс для выбора одного или нескольких значений;
  • Радио-кнопка – кнопка, позволяющая выбрать только одно из доступных значений;
  • Истина/ложь – позволяет задавать условие «Да» или «Нет»;
  • Ссылка на страницу – выводит список страниц или записей и позволяет выбрать одну из них;
  • Объект записи – позволяет выбрать один или несколько объектов из рубрики;
  • Взаимоотношения – устанавливает взаимоотношения между записями сайта;
  • Таксономия – позволяет выбрать таксономию, например, рубрику или тэги, либо другую, созданную пользователем, таксономию;
  • Пользователь – предоставляет на выбор всех пользователей с возможностью сортировки по должности;
  • Гугл карта – выводит карту от Гугла по заданным координатам, либо по названию города, улицы и т.д.;
  • Выбор даты – позволяет указать дату из календаря, может использоваться, например, для указания даты проведения акции и т.д.;
  • Выбор цвета – предлагает на выбор палитру;
  • Вкладка – позволяет группировать ваши поля вкладкам, например, вкладка «Контакты» с полями «Имя», «Телефон», «Почта».

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

Обязательно – поставить условие, обязательно ли должно быть заполнено данное поле. Если выбрано «обязательно», то пока поле не будет корректно заполнено, опубликовать запись не получится.

Значение по умолчанию – вы можете указать какое значение должно быть по умолчанию, например, какой цвет будет показываться, либо что будет выводить в поле.

Текст внутри поля – выступает в качестве placeholder в поле input. Данные текст будет отображаться в поле, но исчезать, при попытке что-то ввести в поле.

Добавить в начало и добавить в конец – текст, который будет находиться перед или после поля.

Форматирование – у вас есть возможность указать, будет ли преобразовываться html теги в код или нет.

Ограничение символов – не даст пользователю ввести больше символов, чем ему разрешено.

Условная логика – работает только в совокупности с типом поля Истина/Ложь. Например, у вас на сайте пользователь с помощью произвольных полей может составить свою анкету. Ему задается вопрос, хочет ли он указать свой мобильный телефон. Если он нажимает «Да», то ему показывается поле для ввода телефона. Если он ничего не выбирает, то соответственно и поле телефона не видно. В таком случае, для вопроса, мы задаем тип Истина/Ложь, а для поля ввода телефона выбираем «Условная логика – Да», и указываем, что будет отображаться в том случае, если поле с вопросом выбрано.

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

Можно задать даже целый ряд условий, когда будет выводиться то или иное поле. Довольно удобная штука, часто может пригодиться.

Кому может пригодиться плагин Advanced Custom Fields

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

  1. Сайт знакомств – принцип такой, пользователь регистрируется и добавляет свою анкету. В котором будут такие поля, как имя, возраст, телефон, фотография, описание и т.д. После проверки модератором, анкета попадает на сайт.
  2. По точно такому же принципу можно сделать доску объявлений на WordPress. Человек регистрируется, указывает свои контакты, выкладывает несколько фотографий товара и цену, после чего товар публикуется на сайт и становится доступным для просмотра.
  3. Есть и более нестандартные варианты. Например, совсем недавно я делал каталог товаров, при добавлении которых, была возможность вставки вот такого переключателей блоков на сайт.

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

Ну и что здесь такого, скажете вы? А то, что вручную добавлять администратору эти блоки не нужно будет.

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

При добавлении товара, у него появляются вот такой блок. Если администратор решил добавить «Условные обозначения» или «Технические характеристики товара», то ему достаточно просто нажать на кнопку «Да» и откроется поле для ввода информации и на странице товара автоматически добавится вкладка с информацией, которую можно будет переключать. Довольно удобно.

  1. Так же, недавно на одном из сайтов, был реализован следующий функционал. Пользователь регистрируется на сайте и выбирает что он будет представлять: частного мастера маникюра или салона красоты. После чего, через те же произвольные поля ACF, он может добавить информацию о себе или о салоне, указать какие работы он выполняет и их стоимость, а также загрузить свою фотографию и работы в портфолио. Пользователь или салон получает свою персональную страничку, а вся информацию добавляется автоматически на сайт. Страничка на сайте выглядит вот так:

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

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

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

Более того, мы пошли дальше, и добавили возможность добавления записей front-end через плагин Advanced Custom Fields. Что это значит? То, что, пользователю совершенно не нужно заходить в админку, а свои услуги он сможет добавлять и редактировать прямо с сайта. И это все позволяет реализовать данный плагин. Реализовали и вот что –  нужная информация (фото мастера или фото салона), берется из произвольный полей и выводится в отдельном каталоге вместе с именем мастера или названием салона. Т.е. посетитель сайта может просмотреть всех мастеров в отдельной категории. А при желании и отфильтровать их с помощью Ajax фильтра на WordPress. Фильтруются практически все параметры, полученные из этих полей. Причем довольно удобно, без перезагрузки страницы.

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

  1. При желании, вы сможете создать каталог продукции на данном движке и с помощью произвольных полей выводить необходимые параметры товара, например, цвет, размер, страну производства и т.д. Т.е. некий упрощенный аналог мощного плагина Woocommerce, только без возможности добавления товара в корзину и оформления заказа.

Надеюсь я смог показать вам, насколько крутой плагин Advanced Custom Fields и сколько он имеет возможности для реализации. А о том, как вывести произвольные поля ACF я расскажу вам в следующем посте.

Изучайте плагин, тренируйтесь, пробуйте и вы сможете сделать ваш сайт функциональным и уникальным. Главное практика.

Loading Likes…

  • Facebook
  • Twitter
  • Вконтакте
  • Одноклассники

seoblognik.ru

Установка плагина Advanced Custom Fields:

Установка плагина Advanced Custom Fields

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

Установка и активация плагина Advanced Custom Fields

Сначала рассмотрим пример настройки полей для рубрики записей в wordpress.

Настройка группы полей для рубрики записи

Кликаем на пункт меню «Произвольные поля», на открывшейся странице кликаем на кнопку «Добавить новую».

Добавление группы произвольных полей для рубрики

Настройки для отображения произвольного поля для рубрики:

Для того чтобы наши прозвольные поля отображались для рублик необходимо в блоке «Местоположение» указать условие. В данном случае это: «Термин таксономии равно рубрики».

Настройки для отображения произвольного поля для рубрики

Добавление произвольного поля в Advanced Custom Fields:

Добавление произвольного поля в Advanced Custom Fields

Для добавления произвольного поля необходимо следующим этапом, заполнить обязательные поля с предыдущей страницы.

Настройка произвольного поля

Здесь:

  1. Символьный код произвольного поля;
  2. После заполнения всех полей и настроек поля нажимаем кнопку «Опубликовать».

Теперь будем делать вывод произвольного поля. Для того чтобы сделать вывод поля для рубрики через advanced custom fields необходимо сначала заполнить его на странице редактирования рубрики, после перейти в нужный php файл темы и разместить там следующий код:

Здесь:

  • get queried object — полная информация о записи, метке, рубрике;
  • the_field — функция, которая выводит значение произвольного поля для определенной рубрики.

Чтобы вывести произвольное поле в записи нужно размещать этот код в цикле примерно вот так:

На этом все, после правильно проделанной работы цель вывода произвольных полей в wordpress с использованием плагина advanced custom fields достигнута. Всем удачи и успехов в работе!

rugeek.ru

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

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

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

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

$field_name — имя поля;

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

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

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

Перед этим конечно нужно создать поле с именем «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 (если подключен), конечно перед этим нужно не забыть добавить такое произвольное поле:

 

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

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

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

 

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

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

 

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

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

 

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

 

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

  • текстовое поле;
  • редактор WYSIWYG или tinyMCE;
  • гугл карты / google maps;
  • взаимоотношения между постами, страницами, пользователями, категориями, таксономиями.

help-wp.ru

Поле «группы»
Поле «группа» содержит ваши пользовательские поля, правила определения местоположения и параметры отображения на экране. Каждое поле «группа» будет использовать правила определения местоположения для отображения полей на определенном экране редактирования, а затем будет использовать параметры отображения на экране для настройки страницы. Типичное поле «группа» выглядит следующим образом:

Поля
В поле «группа» вы можете создавать свои собственные поля. Примером этого может быть группа под названием «Художник», которая содержит 2 поля «Биография» и «Работы».

Каждое поле имеет большое количество различных опций, которые служат для изменения его типа (текст, действие выбора, чек-бокс, режим полного редактирования и т.д.), значения по умолчанию, необходимого статуса, и т.д. Вы можете приобрести дополнения, чтобы разблокировать более мощные типы полей: поле ретранслятор, поле галерея и гибкое содержание.

Правила определения местоположения
Подобно правилам интеллектуального списка воспроизведения на iTunes, правила определения местоположения плагина ACF Pro позволяют подключать различные группы к экрану редактирования. Существуют различные типы соединителей: по сообщениям, по номеру ID, по шаблону страницы, по таксономии и т.д.

Параметры отображения
Когда на экране редактирования появляется поле «группа», автоматически загружаются параметры для данного поля. Они позволяют скрыть элементы на странице. Например, если вы захотите, чтобы основной редактор был скрыт, в то время, когда поле «Исполнитель» было отображено. Это позволяет минимизировать экран редактирования и обеспечить более удобное размещение контента.

Отображение данных плагина ACF Pro в вашей теме
Плагин AFC Pro очень прост в использовании и имеет мощную библиотеку функций для загрузки и отображения пользовательских данных. Плагин использует встроенные постмета функции WP, но и также способен форматировать значение, основываясь на полях типа и полях настроек. Это позволяет писать меньше кода и разрабатывать более «умные» вебсайты!

Плагин AFC Pro потребует от вас некоторых предварительных знаний о модификации вашей темы и понимание PHP кода. После того, как вы редактируете правильный файл шаблона, простой the_field (‘hero_text’) появится вторичное (отображаемое) значение, и get_field ( ‘hero_text’) будет возвращать его обратно для использования в качестве переменной. Обязательно прочитайте обо всех доступных функциях, прежде чем начинать работу в вашей теме. Это нужно, чтобы обеспечить написание кода только один раз, без каких либо доработок!

prowebber.ru

Зачем нужен Advanced Custom Fields?

Advanced Custom Fields (ACF) – это бесплатный плагин для добавления произвольных полей к записи, с удобным интерфейсом (в отличии от стандартных полей WP), широким выбором настроек, а также возможностью серьезного изменения с помощью плагинов.

Скачать плагин с репозитория WordPress

Зачем нужны произвольные поля?

Стандартные настройки записи сильно ограничены. Вы можете использовать: заголовок, текст, миниатюру поста, вывести рубрики и остальное по мелочи. Но, к примеру, вам может понадобиться создать подобие социальной сети, где у каждого человека были бы свои параметры, такие как: рост, цвет глаз, цвет волос и т.д.

Стандартными средствами WP этого можно добиться, но это крайне неудобно. Обычному человеку сложно понять, как пользоваться этой штукой:

Хотелось бы понятные кнопочки загрузки и возможность выбрать рубрику. В итоге нам нужны дополнительные поля к стандартной записи и желательно чтобы были понятные людям. Как раз эту проблему и решает ACF.

Что умеет Advanced Custom Fields?

Вставка произвольных полей

Список всех его возможностей довольно велик, но в нем есть все самое необходимое, а именно:

  • текст
  • текстовая область
  • номер
  • email
  • пароль
  • визуальный редактор WP
  • загрузка изображений и файлов
  • различные манипуляторы выбора
  • различные взаимоотношения между объектами wp (рубрики, страницы, записи, пользователи)
  • вставка Google карт
  • выбор цвета и даты

Поля на любой вкус и цвет. А вот так это выглядит при редактировании самой записи.

 

Выбрать куда вставить поле

Вы можете вставить поля не только в запись, но и в другие виды таксономии, а именно:

  • запись
  • страница
  • пользователь
  • рубрики
  • поля для определенного формата записи (что это?)
  • прикрепление к определенному шаблону страницы
  • и много другое

Настройка области редактирования записи

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

Также есть прочие настройки по-мелочи, вроде стиля самих настроек и приоритет полей по отношению к другим элементам.

Как использовать?

1. Для начала установите плагин стандартным способом (как установить плагин?).
2. Далее в правой колонке найдите вкладку «Произвольные поля» и нажмите на нее.
3. После установки у вас еще нет полей. Давайте создадим новою группу полей нажав на «Добавить новую»

4. Назовите группу полей. Это имя будет в шапке настроек в записи.
5. Для добавления поля нажмите «Добавить поле», как ни странно 🙂

6. Назовите поле, задайте описание. И обязательно укажите «Имя поля» на английском. Оно нам пригодиться в будущем.
7. Поиграйтесь с настройками плагина, выберите нужные поля или их сочетания. Вы можете менять поля местами, и удалять их. Все наглядно и понятно.

8. Затем зайдите в таксономию, которую вы выбрали. В моем случае это запись. И наслаждайтесь результатом.

Все сохраняется, но поля не выводятся. Почему? Потому, что мы не добавили настройки полей в нашу тему. Тут вам понадобиться знание механики тем wordpress или помощь программиста. В принципе ничего дико сложного нет, но если вам не хочется тратить время, то можете обратиться к специалисту по wordpress.

Итак, далее работаем с темой. В нужное место вставим такой код.

<?php echo get_post_meta($post->ID, ' Имя поля ', true); ?>

Где «Имя поля» мы задали в пункте 6. О функции get_post_meta можно узнать тут:

О функции get_post_meta

Код выше подходит для простых полей типа текстовых. Для более вывода более сложных полей есть смысл обратиться к документации.  Она, к сожалению, на английском. Так, что если у вас туго с этим языком будут проблемы.

Если вы хотите чтобы я более подробно разобрал тему именно установки и вывода настроек пишите об этом в комментариях!

Документация по ACF доступна на сайте разработчика. Ссылка ниже.

Документация по Advanced Custom Fields

Плюсы и минусы бесплатной версии ACF

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

Плюсы

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

Минусы

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

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

Единственное, что раздражает, нет возможности добавить слайдер и повторяющиеся поля, но это есть в платных расширениях. О них мы и поговорим в следующей статье.

Стоит ли покупать платные дополнения для Advanced Custom Fields? (часть 2)

wp-book.ru

Changelog

5.7.9

Release Date – 17 December 2018

  • Fix – Added custom metabox location (acf_after_title) compatibility with Gutenberg.
  • Fix – Added dynamic metabox check compatibility with Gutenberg.
  • Fix – Fixed bug causing required date picker fields to prevent form submit.
  • Fix – Fixed bug preventing multi-input values from saving correctly within media modals.
  • Fix – Fixed bug where acf_form() redirects to an incorrect URL for sub-sites.
  • Fix – Fixed bug where breaking out of a sub have_rows() loop could produce undesired results.
  • Dev – Added filter ‘acf/connect_attachment_to_post’ to prevent connecting attachments to posts.
  • Dev – Added JS filter ‘google_map_autocomplete_args’ to customize Google Maps autocomplete settings.

5.7.8

Release Date – 7 December 2018

  • Fix – Fixed vulnerability allowing author role to save unfiltered HTML values.
  • Fix – Fixed all metaboxes appearing when editing a post in WP 5.0.
  • i18n – Updated Polish translation thanks to Dariusz Zielonka.
  • i18n – Updated Czech translation thanks to Veronika Hanzlíková.
  • i18n – Update Turkish translation thanks to Emre Erkan.
  • i18n – Updated Portuguese language thanks to Pedro Mendonça.

5.7.7

Release Date – 1 October 2018

  • Fix – Fixed various plugin update issues.
  • Tweak – Added ‘language’ to Google Maps API url.
  • Dev – Major improvements to the acf.models.Postbox model.
  • Dev – Added JS filter ‘check_screen_args’.
  • Dev – Added JS action ‘check_screen_complete’.
  • Dev – Added action ‘acf/options_page/submitbox_before_major_actions’.
  • Dev – Added action ‘acf/options_page/submitbox_major_actions’.
  • i18n – Updated Portuguese language thanks to Pedro Mendonça

5.7.6

Release Date – 12 September 2018

  • Fix – Fixed unload prompt not working.
  • Dev – Reduced number of queries needed to populate the relationship field taxonomy filter.
  • Dev – Added ‘nav_menu_item_id’ and ‘nav_menu_item_depth’ to get_field_groups() query.
  • Dev – Reordered various actions and filters for more usefulness.
  • i18n – Updated Polish language thanks to Dariusz Zielonka

5.7.5

Release Date – 6 September 2018

  • Fix – Fixed bug causing multisite login redirect issues.
  • Fix – Fixed bug causing validation issues in older versions of Firefox.
  • Fix – Fixed bug causing duplicate Select2 instances when adding a widget via drag/drop.
  • Dev – Improved WPML compatibility by using $sitepress->get_current_language() instead of ICL_LANGUAGE_CODE.
  • Dev – Improved validation JS with new Validator model and logic.

5.7.4

Release Date – 30 August 2018

  • Fix – Fixed bug causing field groups to disappear when selecting a taxonomy term with WPML active.
  • Tweak – Added more Dark Mode styles.
  • Tweak – Improved DB upgrade prompt, functions and AJAX logic.
  • Tweak – Improved the “What’s New” admin page seen after DB Upgrade.
  • Dev – Added new location rules filters.

5.7.3

Release Date – 20 August 2018

  • New – Added Dark Mode styles for the Dark Mode Plugin.
  • New – Added “Value Contains” condition to the Select field type.
  • New – Added support for the WooCommerce product type dropdown to trigger “update metaboxes”.
  • Tweak – Improved acf.screen model responsible for “updating metaboxes” when changing post data.
  • Tweak – Removed user fields from the multisite “Add New User” page.
  • Fix – Fixed bug preventing some tinymce customizations from working.
  • Fix – Fixed JS bug throwing “preference” error in console.
  • Dev – Added action ‘acf/enqueue_uploader’ triggered after the hidden “ACF Content” editor is rendered.

5.7.2

Release Date – 6 August 2018

  • Fix – Fixed bug preventing the Google Maps Field address from being customized.
  • Fix – Improved logic to request and cache plugin update information.
  • Fix – Fixed bug preventing JS initialization when editing widgets in accessibility mode.
  • Fix – Added missing $parent argument to term_exists() function when adding a new term via taxonomy field popup.
  • Fix – Fixed bug where nested Group Fields did not delete their values.
  • Fix – Fixed JS error thrown by localStorage if cookies are not enabled.
  • Dev – Bumped minimum WP version requirement to 4.4.
  • Dev – Added action ‘wp_nav_menu_item_custom_fields’ for compatibility with other plugins modifying the menu walker class.
  • Dev – Added ‘multiple’ to the allowed attributes for an email field.
  • Dev – Added new ACF_Ajax class for upcoming features.

5.7.1

  • Core: Minor fixes and improvements

5.7.0

  • Core: Major JavaScript updates
  • Core: Improved conditional logic with new types and more supported fields
  • Core: Improved localization and internationalization
  • Repeater field: Improved logic that remembers collapsed row states
  • Repeater field: Added support to collapse multiple rows (hold shift)
  • API: Improved lookup to find fields without a reference value
  • Language: Added Croatian translation – Thanks to Vlado Bosnjak
  • Language: Updated Italian translation – thanks to Davide Pantè
  • Language: Updated Romanian translation – thanks to Ionut Staicu
  • Language: Updated German translation – thanks to Ralf Koller
  • Language: Updated Arabic translation – thanks to Karim Ramadan
  • Language: Updated Portuguese translation – thanks to Pedro Mendonça

5.6.10

  • Core: Minor fixes and improvements

5.6.9

  • User field: Added new ‘Return Format’ setting (Array, Object, ID)
  • Core: Added basic compatibility with Gutenberg – values now save
  • Core: Fixed bug affecting the loading of fields on new Menu Items
  • Core: Removed private (‘show_ui’ => false) post types from the ‘Post Type’ location rule choices
  • Core: Minor fixes and improvements
  • Language: Updated French translation – thanks to Maxime Bernard-Jacquet

5.6.8

  • API: Fixed bug causing have_rows() to fail with PHP 7.2
  • Core: Fixed bug causing “Add new term” form to hide after submit
  • Core: Minor fixes and improvements
  • Language: Updated German translation – thanks to Ralf Koller
  • Language: Updated Portuguese translation – thanks to Pedro Mendonça
  • Language: Updated Arabic translation – thanks to Karim Ramadan
  • Language: Updated Spanish translation – thanks to Luis Rull Muñoz
  • Language: Updated Persian translation – thanks to Majix

5.6.7

  • Fixed an assortment of bugs found in 5.6.6

5.6.6

  • Accordion field: Added new field type
  • Tab field: Added logic to remember active tabs
  • WYSIWYG field: Fixed JS error in quicktags initialization
  • Core: Fixed issue preventing conditional logic for menu item fields
  • Core: Fixed issue preventing JS initialization for newly added menu items.
  • Core: Allow whitespace in input value (previously trimmed)
  • Core: Minor fixes and improvements
  • Language: Updated Italian translation – thanks to Davide Pantè
  • Language: Updated Brazilian Portuguese translation – thanks to Rafael Ribeiro
  • Language: Updated Dutch translation – thanks to Derk Oosterveld
  • Language: Updated Portuguese translation – thanks to Pedro Mendonça
  • Language: Updated Persian translation – thanks to Kamel Kimiaei
  • Language: Updated Swiss German translation – thanks to Raphael Hüni
  • Language: Updated Arabic translation – thanks to Karim Ramadan

5.6.5

  • API: Added new ‘kses’ setting to the acf_form() function
  • Core: Added new ‘Admin Tools’ framework (includes design refresh)
  • Core: Minor fixes and improvements
  • Language: Update Ukrainian translation – thanks to Jurko Chervony
  • Language: Update Russian translation – thanks to Andriy Toniyevych
  • Language: Update Hebrew translation – thanks to Itamar Megged

5.6.4

  • Google Map field: Fixed bug causing invalid url to JavaScript library
  • WYSIWYG field: Fixed minor z-index and drag/drop bugs
  • Group field: Fixed bug causing incorrect export settings
  • Core: Fixed bug in ‘Post Taxonomy’ location rule ignoring selected terms during AJAX callback
  • Core: Fixed bug preventing a draft to validate with required fields
  • Language: Updated Italian translation – thanks to Davide Pantè
  • Language: Update Turkish translation – thanks to Emre Erkan
  • Language: Updated Chinese translation – thanks to Wang Hao
  • Language: Update Hebrew translation – thanks to Itamar Megged

5.6.3

  • Button Group field: Added new field type
  • Range field: Added missing ‘step’ attribute to number input
  • Range field: Added width to number input based on max setting
  • Basic fields: Added missing ‘required’ attribute to inputs
  • Basic fields: Removed empty attributes from inputs
  • API: Fixed get_fields() bug ignoring fields starting with an underscore
  • Core: Minor fixes and improvements
  • Language: Updated Portuguese translation – thanks to Pedro Mendonça
  • Language: Updated French translation – thanks to Maxime Bernard-Jacquet
  • Language: Updated Finnish translation – thanks to Sauli Rajala
  • Language: Updated German translation – thanks to Ralf Koller

5.6.2

  • Range field: Added new field type
  • Clone field: Fixed bug causing value update issues for ‘seamless’ + widgets / nave menu items
  • Location: Added parent theme’s post templates to ‘post template’ location rule
  • Location: Fixed bug causing ‘nav menu’ location rule to fail during AJAX (add new item)
  • Core: Fixed PHP errors in customizer when editing non ACF panels
  • Core: Fixed bug casing backslash character to break fields / field groups
  • Core: Many minor bug fixes
  • Language: Updated Romanian translation – thanks to Ionut Staicu
  • Language: Updated Italian translation – thanks to Davide Pantè
  • Language: Update Turkish translation – thanks to Emre Erkan
  • Language: Updated Russian translation – Thanks to Алекс Яровиков
  • Language: Updated French translation – Thanks to Julie Arrigoni

5.6.1

  • Fixed an assortment of bugs found in 5.6.0

5.6.0

  • Link field: Added new field type
  • Group field: Added new field type
  • API: Improved have_rows() function to work with clone and group field values
  • Core: Added new location for Menus
  • Core: Added new location for Menu Items
  • Core: Added types to Attachment location rule – thanks to Jan Thomas
  • Core: Added “Confirm Remove” tooltips
  • Core: Updated Select2 JS library to v4
  • Core: Minor fixes and improvements

5.5.14

  • Core: Minor bug fixes

5.5.13

  • Clone field: Improved ‘Fields’ setting to show all fields within a matching field group search
  • Flexible Content field: Fixed bug causing ‘layout_title’ filter to fail when field is cloned
  • Flexible Content field: Added missing ‘translate_field’ function
  • WYSIWYG field: Fixed JS error when using CKEditor plugin
  • Date Picker field: Improved ‘Display Format’ and ‘Return Format’ settings UI
  • Time Picker field: Same as above
  • Datetime Picker field: Same as above
  • Core: Added new ‘remove_wp_meta_box’ setting
  • Core: Added constants ACF, ACF_PRO, ACF_VERSION and ACF_PATH
  • Core: Improved compatibility with Select2 v4 including sortable functionality
  • Language: Updated Portuguese translation – thanks to Pedro Mendonça

5.5.12

  • Tab field: Allowed HTML within field label to show in tab
  • Core: Improved plugin update class
  • Language: Updated Portuguese translation – thanks to Pedro Mendonça
  • Language: Updated Brazilian Portuguese translation – thanks to Rafael Ribeiro

5.5.11

  • Google Map field: Added new ‘google_map_init’ JS action
  • Core: Minor fixes and improvements
  • Language: Updated Swiss German translation – thanks to Raphael Hüni
  • Language: Updated French translation – thanks to Maxime Bernard-Jacquet

5.5.10

  • API: Added new functionality to the acf_form() function:
    • added new ‘html_updated_message’ setting
    • added new ‘html_submit_button’ setting
    • added new ‘html_submit_spinner’ setting
    • added new ‘acf/pre_submit_form’ filter run when form is successfully submit (before saving $_POST)
    • added new ‘acf/submit_form’ action run when form is successfully submit (after saving $_POST)
    • added new ‘%post_id%’ replace string to the ‘return’ setting
    • added new encryption logic to prevent $_POST exploits
    • added new acf_register_form() function
  • Core: Fixed bug preventing values being loaded on a new post/page preview
  • Core: Fixed missing ‘Bulk Actions’ dropdown on sync screen when no field groups exist
  • Core: Fixed bug ignoring PHP field groups if exists in JSON
  • Core: Minor fixes and improvements

5.5.9

  • Core: Fixed bug causing ACF4 PHP field groups to be ignored if missing ‘key’ setting

5.5.8

  • Flexible Content: Added logic to better ‘clean up’ data when re-ordering layouts
  • oEmbed field: Fixed bug causing incorrect width and height settings in embed HTML
  • Core: Fixed bug causing incorrect Select2 CSS version loading for WooCommerce 2.7
  • Core: Fixed bug preventing ‘min-height’ style being applied to floating width fields
  • Core: Added new JS ‘init’ actions for wysiwyg, date, datetime, time and select2 fields
  • Core: Minor fixes and improvements

5.5.7

  • Core: Fixed bug causing get_field() to return incorrect data for sub fields registered via PHP code.

5.5.6

  • Core: Fixed bug causing license key to be ignored after changing url from http to https
  • Core: Fixed Select2 (v4) bug where ‘allow null’ setting would not correctly save empty value
  • Core: Added new ‘acf/validate_field’ filter
  • Core: Added new ‘acf/validate_field_group’ filter
  • Core: Added new ‘acf/validate_post_id’ filter
  • Core: Added new ‘row_index_offset’ setting
  • Core: Fixed bug causing value loading issues for a taxonomy term in WP < 4.4
  • Core: Minor fixes and improvements

5.5.5

  • File field: Fixed bug creating draft post when saving an empty value
  • Image field: Fixed bug mentioned above

5.5.4

  • File field: Added logic to ‘connect’ selected attachment to post (only if attachment is not ‘connected’)
  • File field: Removed filesize() call causing performance issues with externally hosted attachments
  • File field: Added AJAX validation to ‘basic’ uploader
  • Image field: Added ‘connect’ logic mentioned above
  • Image field: Added AJAX validation mentioned above
  • True false field: Improved usability by allowing ‘tab’ key to focus element (use space or arrow keys to toggle)
  • Gallery field: Fixed bug causing unsaved changes in sidebar to be lost when selecting another attachment
  • API: Fixed add_row() and add_sub_row() return values (from true to new row index)
  • Core: Improved get_posts() query speeds by setting ‘update_cache’ settings to false
  • Core: Allowed ‘instruction_placement’ setting on ‘widget’ forms (previously set always to ‘below fields’)
  • Core: Removed ‘ACF PRO invalid license nag’ and will include fix for ‘protocol change’ in next release
  • Language: Updated French translation – thanks to Martial Parfait

5.5.3

  • Options page: Fixed bug when using WPML in multiple tabs causing incorrect ‘lang’ to be used during save.
  • Core: Added support with new get_user_locale() setting in WP 4.7
  • Core: Improved efficiency of termmeta DB upgrade logic
  • Core: Minor fixes and improvements

5.5.2

  • Tab field: Fixed bug causing value loading issues for field’s with the same name
  • Repeater field: Fixed bug in ‘collapsed’ setting where field key was shown instead of field label

5.5.1

  • Select field: Fixed bug preventing some field settings from being selected
  • Date picker field: Improved compatibility with customized values
  • Core: Added new ‘enqueue_datepicker’ setting which can be used to prevent the library from being enqueued
  • Core: Added new ‘enqueue_datetimepicker’ setting which can be used to prevent the library from being enqueued
  • Core: Minor fixes and improvements

5.5.0

  • True False field: Added new ‘ui’ setting which renders as a toggle switch
  • WYSIWYG field: Added new ‘delay’ setting which delays tinymce initialization until the field is clicked
  • WYSIWYG field: Added compatibility for WP 4.7 toolbar buttons order
  • Checkbox field: Added new ‘allow_custom’ and ‘save_custom’ settings allowing you to add custom choices
  • Select field: Fixed bug where Select2 fields did not correctly use the ‘allow null’ setting
  • Clone field: Fixed bug causing save/load issues found when 2 sub fields clone in the same field/group.
  • Flexible Content field: Improved popup style and validation messages
  • Google Map field: Prevent scroll zoom
  • Date picker field: Added better compatibility logic for custom ‘date_format’ setting found in version < 5.0.0
  • API: acf_form() ‘id’ setting is now used as ‘id’ attribute in

<

form> element
* Options page: Fixed incorrect redirect URL from a sub options page
* Field group: Added new ‘post_template’ location rule (requires WP 4.7)
* Core: Added support for the wp_termmeta table (includes DB upgrade)
* Core: Added new ‘select_2_version’ setting which can be changed between 3 and 4
* Core: Added new ‘enqueue_select2’ setting which can be used to prevent the library from being enqueued
* Core: Added new ‘enqueue_google_maps’ setting which can be used to prevent the library from being enqueued
* Core: Minor fixes and improvements
* Language: Updated Portuguese translation – thanks to Pedro Mendonça
* Language: Updated Norwegian translation – thanks to Havard Grimelid
* Language: Updated Swedish translation – thanks to Jonathan de Jong
* Language: Updated German translation – thanks to Ralf Koller
* Language: Updated Italian translation – thanks to Davide Pantè
* Language: Updated Swiss German translation – thanks to Raphael Hüni

5.4.8

  • Flexible Content field: Fixed bug in ‘layout_title’ filter preventing values being loaded correctly

5.4.7

  • Time Picker field: Fixed bug preventing default time from being selected
  • Date Picker field: Improved compatibility with unix timestamp values
  • File field: Fixed validation bugs when used as a sub field (multiple selection)
  • Select field: Fixed bug incorrectly allowing a disabled field (hidden by conditional logic) to save values
  • API: Added new add_sub_row() function
  • API: Added new update_sub_row() function
  • API: Added new delete_sub_row() function
  • Core: Fixed bug causing ‘sync’ issues with sub clone fields
  • Core: Minor fixes and improvements

5.4.6

  • Gallery field: Fixed bug where open sidebar fields were saved to post
  • Flexible Content field: Fixed bug causing Google map render issue within collapsed layout
  • Flexible Content field: Fixed bug during ‘duplicate layout’ where radio input values were lost
  • API: Fixed bug causing get_row(true) to return incorrect values
  • Core: Fixed bug where preview values did not load for a draft post
  • Core: Added notice when PRO license fails to validate URL
  • Core: Fixed bug where conditional logic would incorrectly enable select elements
  • Core: Minor fixes and improvements

5.4.5

  • API: Fixed bug in acf_form() where AJAX validation ignored ‘post_title’
  • API: Improved update_field() when saving a new value (when reference value does not yet exist)
  • Core: Added search input & toggle to admin field groups list
  • Core: Fixed bug where preview values did not load for a draft post

5.4.4

  • WYSIWYG field: Fixed JS error when ‘Disable the visual editor when writing’ is checked

5.4.3

  • WYSIWYG field: Fixed JS bug (since WP 4.6) causing conflicts with editor plugins
  • Google Maps field: Fixed JS error conflict with Divi theme
  • Radio field: Fixed bug (Chrome only) ignoring default values in cloned sub fields
  • Core: Fixed wp_get_sites() deprecated error (since WP 4.6) shown in network admin

5.4.2

  • API: Fixed bug preventing post_title and post_content values saving in acf_form()

5.4.1

  • API: Fixed bug causing get_fields('options') to return false
  • Core: Fixed bug causing get_current_screen() to throw PHP error
  • Core: Fixed bug causing ‘Preview Post’ to load empty field values

5.4.0

  • Clone field: Added new field type (https://www.advancedcustomfields.com/resources/clone/)
  • Gallery field: Removed ‘Preview Size’ setting and improved UI
  • Taxonomy field: Added compatibility to save/load terms to user object
  • Select field: Added new ‘Return Format’ setting
  • Radio field: Added new ‘Return Format’ setting
  • Checkbox field: Added new ‘Return Format’ setting
  • Page link field: Added new ‘Allow Archives URLs’ setting
  • Core: Fixed plugin update bug delaying updates
  • Core: Fixed bug when editing field settings in Chrome causing required setting to self toggle
  • Core: Improved speed and fixed bugs when creating and restoring revisions
  • Core: Minor fixes and improvements
  • Language: Updated Portuguese translation – thanks to Pedro Mendonça
  • Language: Updated Brazilian Portuguese translation – thanks to Augusto Simão
  • Language: Updated Dutch translation – thanks to Derk Oosterveld
  • Language: Updated Persian translation – thanks to Kamel
  • Language: Updated German translation – thanks to Ralf Koller
  • Language: Updated Swiss German translation – thanks to Raphael Hüni

View full changelog: https://www.advancedcustomfields.com/changelog/

wordpress.org


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock
detector