Практические примеры использования поля Repeater Advanced Custom Field

В данной заметке хочу поделиться с вами решениями, относящиеся исключительно к полю Repeater (повторитель) плагина ACF (Advanced Custom Field).

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

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


Заметка #1 — Вывести данные поля Repeater стандартным способом.

<?php if(get_field('fieldname')): ?>
<?php while(has_sub_field('fieldname')) : ?>
      <?php the_sub_field('fieldname_sub'); ?>
<?php endwhile; ?>
<?php endif; ?>

Заметка #2 — В репитере есть выбор с радиобаттоном и вы хотите скрыть поле, если значение радиобаттона не совпадает с выбранным значением в админке.

<?php if(have_rows('fieldname')): ?>

<?php while(have_rows('fieldname')): the_row(); 
$fieldname_sub = get_sub_field('fieldname_sub');
?>

<?php if (($link) == 'yes'): ?>
  // Здесь выводим нужный нам контент
<?php endif; ?>

<?php endwhile; ?>

<?php endif; ?>

Заметка #3 — Репитер в репитере. Причём уровней вложенности самих репитером может быть хоть 10, главное соблюдать правильную структуру кода.

<?php if(get_field('fieldname')): ?>

<?php while(has_sub_field('fieldname')) : ?>

<?php the_sub_field('fieldname_sub'); // Значение поля первого репитера ?>

<?php if(get_sub_field('fieldname_subrepeater')): ?>
// Начало второго репитера
<?php while(has_sub_field('fieldname_subrepeater')) : ?>
      <?php the_sub_field('fieldname_subrepeater_sub'); // Значение поля второго репитера ?>
<?php endwhile; ?>
// Конец второго репитера
<?php endif; ?>

<?php endwhile; ?>
<?php endif; ?>

Заметка #4 — Repeater с условием: убираем любые данные, если какое-то поле репитера не заполнено.

<?php if( have_rows('fieldname') ): ?>

<?php while( have_rows('fieldname') ): the_row(); 
// Перечисляем поля репитера
$fieldname_sub = get_sub_field('fieldname_sub');
?>

<?php if($image['url'] != ''){ ?>
 <?php echo $image['url']; ?>
<?php } ?>

<?php if( $fieldname_sub ): ?> style="background-color:<?= $fieldname_sub; ?>;"<?php endif; ?>

<?php endwhile; ?>

<?php endif; ?>

Заметка #5 — Repeater с установленным размером картинки. Вы можете добавить в репитер поле «изображение», далее выводить это изображение в полном размере, либо с предустановленным своим размером.

<?php if( have_rows('fieldname') ): ?>

<?php while( have_rows('fieldname') ): the_row(); 
$attachment_id = get_sub_field('fieldname_sub');
$imageurl = wp_get_attachment_image_src( $attachment_id, 'full' ); // если нужна ссылка на полный размер
$fieldname_sub = wp_get_attachment_image_src( $attachment_id, "550x200" ); // если нужна ссылка на предустановленный размер миниатюры
$fieldname_sub = get_sub_field('fieldname_sub');
?>

<?php echo $fieldname_sub; ?>
<?php echo $imageurl[0]; ?>
<?php if( $fieldname_sub ): ?><?php echo $fieldname_sub[0]; ?><?php endif; ?>

<?php endwhile; ?>

<?php endif; ?>

Поле Repeater (повторитель) в ACF позволяет делать удивительные вещи и воплощать любые реализации, главное уметь им пользоваться.

Со временем данная статья будет обновляться и будут добавлены другие вариации. Если у вас есть свои наработки по данному полю, прошу писать о них в комментариях.

ВКонтакте
Facebook
WhatsApp
Telegram
Автор статьи
Выгодный хостинг
Хостинг Beget

Выгодная партнёрская программа! Верните на свой счёт 20% с любой суммы от оплаты хостинга Beget!

Новое в блоге

Смотрите также

Мессенджеры

Написать сообщение

Отправлено!

Мы свяжемся с вами в ближайшее время.