زمینه دلخواه گروه - ACF Field Group

زمینه دلخواه گروه – ACF Group

زمینه دلخواه گروه ( Group ) یکی از قابلیت های مفید افزونه Advanced Custom Fields برای سازماندهی هرچه بهتر زمینه های یک گروه زمینه است. زمینه دلخواه گروه کمک بسیار زیادی به دسترسی سریع تر به ویرایش و ایجاد تغییر در زمینه های فرزند می کند. زمینه گروه با استفاده از نام والد و فرزند ذخیره می شود.

برای مثال ما یک زمینه دلخواه گروه به نام hero ایجاد کرده و در زمینه hero قادر به ایجاد زمینه هایی چون hero_image, hero_field, hero_text و … خواهیم بود که تمامی زمینه ها زیرمجموعه زمینه hero هستند. این زمینه از نسخه 5.6.0 به افزونه ACF اضافه شده و در صورت استفاده از نسخه های قبل تر امکان استفاده از این زمینه موجود نیست.

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

تنظیمات زمینه دلخواه گروه ( Settings )

زمینه های زیرمجموعه ( Sub Fields )

زمینه های فرزند در این بخش اضافه می شوند.

چیدمان ( Layout )

این بخش مربوط به تنظیمات ظاهری زمینه دلخواه گروه در صفحه ویرایش مطلب است.

  • بلوک ( Block ) : هر زمینه فرزند د یک خط جدا قرار می گیرد.
  • جدول ( Table ) : تمامی زمینه های فرزند در یک خط قرار می گیرند.
  • سطر ( Row ) : زمینه های فرزند در یک جدول دو ستونه نمایش داده می شوند، یک ستون برچسب یا نام نمایشی زمینه و یک ستون زمینه فرزند
تنظیمات زمینه دلخواه گروه
زمینه دلخواه گروه

نمایش زمینه دلخواه گروه در قالب ( Template Usage )

زمینه دلخواه گروه آرایه ای از زمینه های فرزند را بازگشت می دهد به مثال های زیر توجه کنید.

نمایش محتوای زمینه ( Display Content )

<?php
$hero = get_field('hero');
if( $hero ): ?>
    <div id="hero">
        <img src="<?php echo esc_url( $hero['image']['url'] ); ?>" alt="<?php echo esc_attr( $hero['image']['alt'] ); ?>" />
        <div class="content">
            <?php echo $hero['caption']; ?>
            <a href="<?php echo esc_url( $hero['link']['url'] ); ?>"><?php echo esc_html( $hero['link']['title'] ); ?></a>
        </div>
    </div>
    <style type="text/css">
        #hero {
            background-color: <?php echo esc_attr( $hero['color'] ); ?>;
        }
    </style>
<?php endif; ?>

نمایش زمینه های فرزند از طریق حلقه ( Loop Example )

در این مثال استفاده از تابع have_rows() الزامی بوده و تابع فراخوانی زمینه های فرزند از get_field() به get_sub_field() تغییر می کند.

<?php if( have_rows('hero') ): ?>
    <?php while( have_rows('hero') ): the_row(); 

        // Get sub field values.
        $image = get_sub_field('image');
        $link = get_sub_field('link');

        ?>
        <div id="hero">
            <img src="<?php echo esc_url( $image['url'] ); ?>" alt="<?php echo esc_attr( $image['alt'] ); ?>" />
            <div class="content">
                <?php the_sub_field('caption'); ?>
                <a href="<?php echo esc_url( $link['url'] ); ?>"><?php echo esc_attr( $link['title'] ); ?></a>
            </div>
        </div>
        <style type="text/css">
            #hero {
                background-color: <?php the_sub_field('color'); ?>;
            }
        </style>
    <?php endwhile; ?>
<?php endif; ?>

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