ACF wordpres: Foreach: data-type = 'group' - PullRequest
       34

ACF wordpres: Foreach: data-type = 'group'

0 голосов
/ 18 февраля 2020

У меня проблема с foreach с data-type = 'group'. У меня есть несколько полей типа «группа». В каждой группе у меня есть подполя: фото и WYSIWYG редактор. Я хотел бы, чтобы l oop возвратил: <div class "slider-nav-box-big">, поля для одной группы, но я не знаю, как ссылаться на массив в al oop и как определить определенные c типы значений, например изображения, WYSIWYG вместо самого значения. Могу ли я определить стоимость по-другому? У меня есть это:

<?php

        $fields = get_field_objects();

        ?>

        <?php if ($fields): ?>
            <div class="slider slider-for">
                <?php foreach ($fields as $field): ?>

                    <?php if ($field['value']): ?>
                        <div class="slider-nav-box-big" id="<?php echo $field['name']; ?>">
                            <div class="col-md-4 col-sm-12 col-12 slider-for-img">
                                <img src="<?php echo $field['value']; ?>" alt="">
                            </div>
                            <div class="col-md-8 col-sm-12 col-12 slider-for-description">
                                <p>
                                    <span><?php echo $field['label']; ?></span>
                                    <?php echo $field['wysiwyg']; ?>
                                </p>
                            </div>
                        </div>
                    <?php endif; ?>

                <?php endforeach; ?>
            </div>
        <?php endif; ?>

$field[‘value’], очевидно, возвращает пустой массив, и $field[‘wysiwyg’] не работает вообще.

Ответы [ 2 ]

0 голосов
/ 21 февраля 2020

У меня уже есть решение, я даю его, если кому-то еще это нужно. Мне пришлось использовать переключатель в foreach l oop, чтобы проверить тип поля следующим образом:

<?php
$fields = get_field_objects();
if( $fields ): ?>
    <ul>
        <?php foreach( $fields as $field ): ?>
            <?php

             switch ($field['type']) {    
                 case "image":        
                 //do something for images      
                 break;    

                 case "wysiwyg":        
                 //do something here      
                 break;    

                 case "file":        
                 //do something here      
                 break;    

                 default:        
                 //end
                }?>

        <?php endforeach; ?>
    </ul>
<?php endif; ?>
0 голосов
/ 19 февраля 2020

ACF фактически предоставляет примеры того, как использовать группу и отображать упомянутые данные.

Их документацию можно найти здесь, как это сделать - https://www.advancedcustomfields.com/resources/group/

...