Custom Field Templateプラグインを使用すると、投稿時に入力フィールドを任意に増やせるカスタムフィールドを作ることが出来ます。
↓こういうの
追加ボタンを押すことで、フィールドを増やしていけるわけですが、入力はともかく、取り出し方には注意が必要です。
通常、カスタムフィールドを取り出す場合
[PHP]
<?php $meta_values = get_post_meta($post_id, $key, $single); ?>
[/PHP]
$post_id:投稿ID
$key:カスタムフィールド名
$single:取得方法。配列ならfalse、1つめだけならtrue
というふうに取り出すのですが、これで取り出すと、複数フィールドの並び順がばらばらで取得されてしまいます。
しかも投稿を編集するたびに並び順が変わるという困った状態に。
なぜ上から順に取り出してくれない・・・
ということで、検索したところ、こちらの方法で解決しました。
Custom Field Template(カスタムフィールドテンプレート) | WordPress 編
複数フィールドを上から順に取り出す場合はsqlをつかって取り出します。
複数フィールドのカスタムフィールド名が「Hoge」とした場合
[PHP]
<?php
global $wpdb;
$query = "SELECT * FROM ".$wpdb->postmeta." WHERE post_id = ".get_the_ID()." AND meta_key = 'Hoge' ORDER BY meta_id ASC";
$cf = $wpdb->get_results($query, ARRAY_A);
$Hoge = array();
if($cf){
foreach($cf as $row){
$Hoge[] = $row['meta_value'];
}
}
?>
[/PHP]
これで複数フィールドの並び順(meta_id)順でデータを取得することができます。