Magic Fields 2 複製したグループをフィールド値でソート/フィールド値ごとに括る

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。

*Magic Fields は開発終了しています

グループは見出し+表示順+内容で、表示順の数字順にソートし、同じ数字ごとに括って
見出し1
 内容
 内容
見出し2
 内容
 内容
 内容
のように表示。

<?php
$groups = get_group('group'); 
$new_order = array();
if (is_array($groups)) {
foreach($groups as $group){
  $new_order[$group['group_id'][1]][] = $group;
}
ksort($new_order);
$no = false;
foreach($new_order as $order){
  foreach($order as $order_group){ ?>
<?php if( $no != $order_group['group_id'][1]) : ?>
            <div>
<?php if ( $no !== false ) : ?>
	    </ul></div><div>
<?php endif; ?>
            <h2><?php echo $order_group['group_title'][1]; ?></h2><ul>
<?php endif; ?>
            <li><?php echo $order_group['group_text'][1]; ?></li>
<?php $no = $order_group['group_id'][1]; ?>
<?php }} ?>
	    </ul></div>
<?php }else{ ?>
<?php } ?> 

グループを取得してgroup_id のフィールド値(数字)で並べ替えてksort(昇順)、group_id のフィールド値を$no として比較し、見出しと閉じタグを出す。
ソートするだけなら

<?php
$groups = get_group('group'); 
$new_order = array();
if (is_array($groups)) {
foreach($groups as $group){
  $new_order[$group['group_id'][1]][] = $group;
}
ksort($new_order);
foreach($new_order as $order){
  foreach($order as $order_group){ ?>
            ~
<?php }} ?>
<?php }else{ ?>
<?php } ?>