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