2016-02-24 2 views
0

У меня есть несколько пользовательских полей каждого типа пользовательских пост под названием «продукт», я хватаю эти поля с get_field_objects() таким образом:Сортировка значений от get_field_objects() - АКФ

$fields = get_field_objects(); 


if (!empty($fields)){ 
    echo "<dl class='clearfix'>"; 
    foreach ($fields as $field){ 
     if (empty($field['value'])) continue; 
     echo "<dt>".$field['label']."</dt><dd>".$field['value']."</dd>"; 
     echo '<br class="clear">'; 
    } 
    echo "</dl>"; 
} 

Мой клиент хочет, чтобы иметь возможность сортировать поля по порядку меню (чтобы он мог просто перетаскивать область плагина). Но я не видел никакой документации для заказа здесь. http://www.advancedcustomfields.com/resources/get_field_objects/

Правильно знать, что заказ - поле, которое создает последнее, является последним. Есть ли хорошее решение для этого?

+0

Вы можете перетащить порядок полей внутри Edit Раздел Полевой группы - хотя это может и не быть тем, что вам нужно здесь. Я имею в виду, что вы можете переупорядочить поля путем перетаскивания при создании группы полей - см .: http://www.advancedcustomfields.com/resources/creating-a-field-group/ –

ответ

0

Что вы можете сделать, это использовать тип acf repeater.

Таким образом, вы сможете добавить столько полей, сколько потребуется, и отсортировать их так, как он хочет, перетащив их.

Если вам нужно знать «тип» каждого поля (например, чтобы изменить стиль), вы можете добавить поле выбора (в поле повторителя) со всеми вашими типами полей.

Вы бы тогда что-то вроде этого:

enter image description here

И что-то вроде этого, чтобы отобразить поля:

<?php $fields = get_field('fields'); ?> 
<?php if (!empty($fields)) : ?> 
    <dl class='clearfix'> 
     <?php foreach ($fields as $field) : ?> 
      <dt><?= $field['label']; ?></dt><dd><?= $field['value']; ?></dd> 
      <br class="clear"> 
     <?php endforeach; ?> 
    </dl> 
<?php endif; ?>