ACF Flexible Content - оптимальный путь - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь привести в порядок свой код и избавиться от большого количества кода.

У меня есть «разделы» ACF Flexible Content Field, содержащие различные разделы.

<?php if( have_rows('sections') ):

$k=0; while ( have_rows('sections') ) : the_row();

    if( get_row_layout() == 'gallerytext_section' ) {
        get_template_part( 'template-onepage/section-open');    
        get_template_part( 'template-onepage/sections/gallerytext'); //different
        get_template_part( 'template-onepage/section-close');
    } else if( get_row_layout() == 'slider_section' ) {
        get_template_part( 'template-onepage/section-open');    
        get_template_part( 'template-onepage/sections/slider'); //different
        get_template_part( 'template-onepage/section-close');
    } else if( get_row_layout() == 'gallery_section' ) {
        get_template_part( 'template-onepage/section-open');    
        get_template_part( 'template-onepage/sections/gallery'); //different
        get_template_part( 'template-onepage/section-close');
    } else if( get_row_layout() == 'news_section' ) {
        get_template_part( 'template-onepage/section-open');    
        get_template_part( 'template-onepage/sections/news'); //different
        get_template_part( 'template-onepage/section-close');
    } else if( get_row_layout() == 'icons_section' ) {           
        get_template_part( 'template-onepage/section-open');    
        get_template_part( 'template-onepage/sections/icons'); //different
        get_template_part( 'template-onepage/section-close');
    }
$k++; endwhile;

endif; ?>

Раздел ' -open 'file и' section-close 'одинаковы для всех разделов. Есть ли более «оптимальный» способ написания этого кода? ie. любой другой л oop ...? Можно ли не повторять открытие и закрытие раздела в каждом из них?

И как заставить работать переменную $ k? Это не «наследуется» от основного шаблона.

раздел открыт:

<?php $k;
$section_class = get_sub_field('section_class');
$section_id = get_sub_field('section_id');
$in_container = get_sub_field('in_container');
$section_color_bg = get_sub_field('section_color_bg');
$section_bg = get_sub_field('section_bg');
$section_text_color = get_sub_field('section_text_color'); ?>

<section <?php if ($section_id) echo 'id='.$section_id; ?> class="<?php echo $k; ?> thumbnail-cover <?php echo $section_class; ?>" style="<?php if ($section_color_bg) echo 'background-color: '.$section_color_bg; ?>;<?php if ($section_text_color) echo 'color: '.$section_text_color; ?>;<?php if ($section_bg) echo 'background-image: url('.$section_bg['url'].')'; ?>">
<?php if ($in_container) { ?>
    <div class="container">
<?php } else { ?>
    <div class="container-fluid">
<?php } ?>

раздел закрыт:

<?php $in_container = get_sub_field('in_container'); ?>
<?php if ($in_container) { ?>
</div>
<?php } ?>
</section>
...