カスタムフィールドは使って見ると便利な機能なのですが、そのままでは入力した順番どおりには表示してくれません。
調べると、好きな順番に並べ替える方法は結構出てくるのですが、希望通りの動きをするものが紹介されていなかったので載せておきます。
どのような動きをするかというと、
- カスタムフィールドをテーブルで表示する
- 任意の順番に変更する
- 入力していない項目は表示しない
という感じです。
具体的なコードは以下に記載します。
<table>
<?php
// 並べたい順にキーを書く
$orders = array(
'りんご',
'みかん',
'なし'
);
$fields = get_post_custom();
foreach ( $orders as $key ) {
//カスタムフィールドに入力しなければ表示しない
if (isset($fields[$key][0])) {
echo '<tr><th>';
echo $key;
echo '</th><td>';
echo $fields[$key][0];
echo '</td></tr>';
}
}
?>
</table>
あらかじめ入力項目を決めておかなければいけないのがネックですが、入力していない項目が表示されないっていうのは結構便利なのではないかと思います。