زمینه دلخواه checkbox - افزونه acf

زمینه دلخواه checkbox یا جعبه انتخاب – ACF Checkbox

یکی از قابلیت های خوب افزونه ACF ایجاد زمینه دلخواه Checkbox است، زمینه دلخواه Checkbox لیستی از ورودی های قابل بررسی را ایجاد می کند. از این زمینه به عنوان یکی از پر استفاده ترین زمینه های دلخواه نام برد. قبل از هر چیز این آموزش نیازمند آشنایی با زمینه های دلخواه پیشرفته Advanced Custom Fields است. پیشنهاد می کنیم قبل از استفاده از این آموزش حتما این مقاله را مطالعه کنید.

اغلب برای انجام بسیاری از دستورات و شرطی سازی متغیر ها ما نیاز به یک چک باکس داریم که با استفاده از زمینه دلخواه Checkbox در افزونه Advanced Custom Field ایجاد چنین قابلیتی بدون نیاز به کدنویسی میسر شده است.

چک باکس یا جعبه انتخاب یک ویجت از نوع رابط گرافیکی کاربری است که قابلیت انتخاب یک یا چند گزینه از میان انتخاب های موجود را فراهم می کند. استفاده از زمینه دلخواه checkbox بسته به نوع نیاز کاربر متفاوت است. این انتخاب ها کاربر میتواند گند گزینه و یا همه گزینه ها را انتخاب کند یا حتی هیچ گزینه ای انتخاب نکند.

تنظیمات زمینه دلخواه checkbox

انتخاب ها ( Choices )

در این قسمت گزینه های «انتخاب ها» لازم را وارد می کنیم. هر انتخاب در یک خط جدا قرار می گیرد، در هر خط ابتدا مقدار انتخاب و سپس برچسب «نام نمایشی» انتخاب در پنل مدیریت قرار می گیرد، و این دو از طریق کالن یا دو نقطه ساعتی : از هم جدا می شوند. نکته قابل توجه پذیرش HTML در قسمت نام نمایشی است. موارد ذکر شده در تصاویر کاملا مشخص شده است.

نکته: هر خط میتواند شامل فقط مقدار شود و وارد کردن نام نمایشی اختیاری است.

اجازه دلخواه ( Allow Custom )

انتخاب Allow Custom امکان اضافه کردن گزینه به زمینه دلخواه Checkbox را در هنگام ویرایش پست فراهم می کند. با انتخاب Allow Custom یک گزینه دیگر به نام ذخیره دلخواه ( Save Custom ) به تنظیمات زمینه اضافه می شود که برای ذخیره گزینه اضافه شده در ویرایش پست به زمینه است.

مقدار پیشفرض ( Default Value )

مشخص میکند به صورت پیشفرض کدام گزینه انتخاب شده باشد. در این قسمت فقط مقدار گزینه مورد نظر وارد می شود نه برچسب آن.

چیدمان ( Layout )

نوع چینش زمینه دلخواه checkbox را مشخص می کند، این زمینه از دو حالت عمودی و افقی پشتیبانی می کند.

انتخاب ( Toggle )

با فعال کردن Toggle یک گزینه به عنوان انتخاب همه به گزینه های شما اضافه می شود. این مورد برای استفاده در چک باکس هایی با انتخاب های زیاد کاربرد دارد. این گزینه از نسخه 5.2.7 افزونه اضافه شده است.

مقدار بازگشت ( Return Format )

مقدار برگشتی، مقداریست که در هنگام نمایش زمینه در قالب نمایش داده می شود. این مقدار می تواند مقدار زمینه، برچسب زمینه و یا هردوی آنها باشد. این گزینه از نسخه 5.4.0 اضافه شده است.

زمینه دلخواه checkbox در تنظیمات افزونه
زمینه دلخواه checkbox در ویرایش پست

نمایش زمینه دلخواه checkbox در قالب

نمایش مقدار ( Value )

از طریق کد زیر مقدار بازگشت مشخص شده در تنظیمات دکمه نمایش داده می شود. در این حال مقادیر در یک خط نمایش داده شده و در صورت وجود چند انتخاب با ویرگول از هم جدا می شوند.

<p>Colors: <?php the_field('colors'); ?></p>

نمایش مقادیر در لیست ( Display values in a list )

با استفاده از مثال زیر مقادیر وارد شده در قالب یک لیست نمایش داده می شوند.

<?php
$colors = get_field('colors');
if( $colors ): ?>
<ul>
    <?php foreach( $colors as $color ): ?>
        <li><?php echo $color; ?></li>
    <?php endforeach; ?>
</ul>
<?php endif; ?>

نمایش برچسب یا برچسب و مقدار در لیست ( Value & Label )

از طریق مثال زیر برچسب «نام نمایشی» گزینه های انتخاب شده در زمینه دلخواه Checkbox در قالب یک لیست نمایش داده می شود. استفاده از مثال زیر فقط در صورتی امکان پذیر است که در تنظیمات زمینه بخش مقدار بازگشت ( Return Format ) برچسب زمینه یا هردو مورد انتخاب شده باشد.

<?php
// Load field settings and values.
$field = get_field_object('colors');
$colors = $field['value'];
// Display labels.
if( $colors ): ?>
<ul>
    <?php foreach( $colors as $color ): ?>
        <li><?php echo $field['choices'][ $color ]; ?></li>
    <?php endforeach; ?>
</ul>
<?php endif; ?>

از طریق مثال زیر مقدار و «نام نمایشی» گزینه های انتخاب شده در قالب لیست نمایش داده می شود. استفاده از مثال زیر فقط در صورتی امکان پذیر است که در تنظیمات زمینه بخش مقدار بازگشت ( Return Format ) هردو مورد انتخاب شده باشد.

<?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; ?>

منطق شرطی ( Conditional logic )

همیشه برای استفاده از زمینه ها شرط پذیری یک زمینه از اهمیت بالایی برخوردار است، دستورات شرطی برای استفاده از زمینه دلخواه checkbox بر اساس انتخاب به اینصورت است. در مثال زیر شرط ما به این صورت است که در صورتی که رنگ قرمز انتخاب شد، کاری را انجام بده.

<?php
$colors = get_field('colors');
if( $colors && in_array('red', $colors) ) {
    // Do something.
}
?>

نمایش پست ها بر اساس انتخاب ها ( Query Posts )

کوئری زیر فقط پست هایی را نشان می دهد که دارای مقدار red برای زمینه color هستند. از آنجا که مقادیر زمینه checkbox به صورت آرایه ذخیری می شوند، حتما برای استفاده meta_query باید از LIKE استفاده کنید.

<?php
$posts = get_posts(array(
    'meta_query' => array(
        array(
            'key'     => 'colors',
            'value'   => '"red"',
            'compare' => 'LIKE'
        )
    )
));

if( $posts ) {
    // Do something.
}
?>

زمینه های افزونه Advanced Custom Fields