Обзор
Поле «Чекбокс» создает список из полей с галочками, с помощью которых можно осуществлять выбор.
Скриншоты
Параметры
- Выборы: Каждый новый вариант выбора должен начинаться с новой строки. Вы можете написать только «значение» или использовать связку «значение : ярлык поля».
- Значение по умолчанию: Значение, которое будет присвоено полю в первый раз. Нужно указывать конкретно «значение», а не «ярлык поля».
- Макет: Как располагать чекбоксы. Вертикально или горизонтально.
- Toggle: Добавляет специальный чекбокс «выбрать все», который позволяет либо отметить все чекбоксы, либо снять со всех выбор.
Использование
Базовое
Пример показывает как вывести все значения выбранных чекбоксов через запятую.
<p>Цвета: <?php the_field('colors'); ?></p>
Произвольный вывод
Показывает как получить и обработать каждый чекбокс из массива выбранных.
<?php
// переменные
$colors = get_field('colors');
// проверка
if( $colors ): ?>
<ul>
<?php foreach( $colors as $color ): ?>
<li><?php echo $color; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
Вывод значения и ярлыка поля
Пример показывает как вывести и значение и ярлык для поля без «Format value» (до ACF 5.4.0).
<?php
// переменные
$field = get_field_object('colors');
$colors = $field['value'];
// проверка
if( $colors ): ?>
<ul>
<?php foreach( $colors as $color ): ?>
<li><?php echo $field['choices'][ $color ]; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
Вывод значения и ярлыка поля с помощью «Format value»
Пример показывает как вывести и значение и ярлык для поля с «Format value» (начиная с ACF 5.4.0).
<?php
// переменные
$colors = get_field('colors');
// проверка
if( $colors ): ?>
<ul>
<?php foreach( $colors as $color ): ?>
<li><span class="color-<?php echo $color['value']; ?>"><?php echo $color['label']; ?></span></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
Условные выражения
Показывает как осуществить проверку чекбокса на условие.
<?php
// переменные
$colors = get_field('colors');
// прооверка
if( $colors && in_array('red', $colors) ): ?>
<p>Selected the Red choice!</p>
<?php endif; ?>
Работа с Query posts
Показывает как выбрать записи содержащие чекбокс равный «red». Нам поможет в этом query posts. Поле чекбокс сохраняется в виде сериализованного массива, поэтому надо делать выборку через meta_query и использовать тип сравнения compare.
<?php
$posts = get_posts(array(
'meta_query' => array(
array(
'key' => 'colors', // name of custom field
'value' => '"red"', // matches exactly "red"
'compare' => 'LIKE'
)
)
));
if( $posts ) {
//...
}
?>