情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・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 } ?>