Флажок (Checkbox)

Обзор

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

Скриншоты

Параметры

  • Выборы: Каждый новый вариант выбора должен начинаться с новой строки. Вы можете написать только «значение» или использовать связку «значение : ярлык поля».
  • Значение по умолчанию: Значение, которое будет присвоено полю в первый раз. Нужно указывать конкретно «значение», а не «ярлык поля».
  • Макет: Как располагать чекбоксы. Вертикально или горизонтально.
  • 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 ) {
    //...
}

?>