У меня есть этот кусочек кода, который он в основном извлекает из различных ACF-полей «file», группирует их по каждой первой букве имени файла и сортирует их по алфавиту.
<?php $groups = array();
if ( have_rows('file_groups_m') ) {
while ( have_rows('file_groups_m') ) {
sort($groups[$first_letter]);
the_row();
// vars
$thefile = get_sub_field('file');
$first_name = $thefile['filename'];
$first_letter = substr($first_name, 0, 1);
// add $first_letter holder to groups
if( !isset($groups[ $first_letter ]) ) {
$groups[ $first_letter ] = array();
}
// append artist to group
$groups[ $first_letter ][] = $first_name;
}
array_multisort($first_name, SORT_ASC, $groups);
}
// ouput
if( !empty($groups) ): ?><?php var_dump($first_letter_arr); ?>
<ul class="file-main-area">
<?php foreach( $groups as $letter => $artists ): ?>
<div class="select-title">
<?php echo $letter; ?></div>
<?php foreach( $artists as $artist ): ?>
<li class="dimensions-li">
<div class="filename"><?php echo $artist; ?></div>
<div class="filedl"><a href="<?php echo $thefile['url']; ?>"download>Download file</a></div>
</li>
<?php endforeach; ?>
<?php endforeach; ?>
<?php endif; ?>
Сортировка работает — но только на внутреннем уровне. Сами группы писем не сортируются вообще. Это конечный результат прямо сейчас:
bfile2.doc
К
kfile3.doc
Когда это должно быть A -> B -> K
Буду признателен за любую помощь.
Задача ещё не решена.
Других решений пока нет …