Поле да/нет Advanced Custom Fields
Есть сайт на wordpress, использую плагин Advanced Custom Fields версия 5.8.1. С помощью этого плагина выводится слайдер на странице. Каждый слайд состоит из полей: заголовок, описание, ссылка, изображение.
Задача сделать, чтобы можно было отображать на странице только определенные слайды. То есть, например, есть 10 слайдов, 8 показываются, 2 не показываются. Но включить и выключить отображение слайда можно было бы сделать в админке при редактировании страницы.
Мы в настройках плагина нашли поле "да/нет", выглядит как классический чекбокс, то есть надо сделать так, чтобы при условии, если галка стоит - слайдер отображается на странице, если галки нет - слайд не отображается. 
Разметка слайдера:
<section class="main-slider green-line">
<div class="container slider-container">
<div class="main-slide">
<div>
<p class="main-slide-title">Гелиевые шары<br>для детей и взрослых</p>
<p class="main-slide-desc">Большой выбор</p>
<a href="/katalog/" class="btn pink-btn">Каталог</a>
</div>
<div>
<div class="main-slide-round">
<div style="background-image: url('...')">
</div>
</div>
</div>
</div>
</div>
<div class="main-slide-num"><span id="cp">1</span>/<span class="slide-sum"></span></div>
<div class="container">
<div class="header-menu">
<div class="menu-menu-1-container">
<ul id="menu-menu-2" class="menu">
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-41"><a href="/katalog/">Каталог</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-37"><a href=" /dostavka/">Доставка</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-39"><a href=" /oplata/">Оплата</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-40"><a href=" /ceny/">Цены</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-38"><a href=" /kontakty/">Контакты</a></li>
</ul>
</div>
</div>
</div>
</section>
Ответы (1 шт):
Имейте ввиду, что я не знаю имен Ваших полей которые Вы создали в ACF, потому я использовал условные по типу your_slider и тп. Вам нужно будет заменить их на те которые задали Вы.
В случае если в условном поле show_slide вернется значение true (чекбокс чекнут), то слайд выведется, так как сработает наше условие if (get_sub_field('show_slide')). Так же можно для этой цели использовать оператор continue но пример с простым оборачиванием слайда в условие if скорее всего Вам будет более понятен.
<?php if (have_rows('your_slider')) : ?>
<div class="container slider-container">
<?php while (have_rows('your_slider')) : the_row(); ?>
<?php if (get_sub_field('show_slide')) : ?>
<div class="main-slide">
<div>
<p class="main-slide-title"><?php the_sub_field('title'); ?></p>
<p class="main-slide-desc"><?php the_sub_field('description'); ?></p>
<a href="<?php the_sub_field('button_link'); ?>" class="btn pink-btn"><?php esc_html_e('Каталог'); ?></a>
</div>
<div>
<div class="main-slide-round">
<?php
$image = get_sub_field('image'); // предположу что для изображения в настройках вы использовали настройки ACF по-умолчанию, где возвращается Image Object, а не ID.
if (!empty( $image )) : ?>
<div style="background-image: url('<?php echo esc_url($image['url']); ?>')"></div>
<?php endif; ?>
</div>
</div>
</div>
<?php endif; ?>
<?php endwhile; ?>
</div>
<?php endif; ?>